Я знаю, что это старый вопрос, но сегодня он получил ту же ошибку и не работал над этими решениями.
Исправил его, установив опцию:
Project -> Architecture -> Build Active Architecture Only
на Да
и компиляция и сборка проекта должным образом
Попытайтесь поместить это перед любыми другими правилами.
RewriteRule ^vip - [L,NC]
Это будет соответствовать любому URI, начинающемуся vip
.
-
средства ничего не делают. L
средства это должно быть последним правилом; проигнорируйте все после. NC
средства, без случаев (таким образом, "VIP" также подобран). Примечание, что это соответствует чему-либо начало vip
. Выражение ^vip$
соответствовало бы vip
, но не vip/
или vip/index.html
. Эти $
, возможно, было Ваше крушение. Если Вы действительно хотите сделать его правильно, Вы могли бы хотеть пойти с [1 111], таким образом, Вы не соответствуете vip-page.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Это говорит, является ли это существующий файл, или каталог не касаются его. Необходимо быть в состоянии получить доступ к site.com/vip, и никакое правило перезаписи не должно происходить.
Вы упомянули, что у Вас уже есть .htaccess файл в каталоге, который Вы хотите проигнорировать - можно использовать
RewriteEngine off
В этом .htaccess для остановки использования mod_rewrite (не уверенный при использовании mod_rewrite в той папке если Вы будете тогда, это не поможет, так как Вы не можете выключить его).
Я не уверен, понимаю ли я Вашу цель, но следующее могло бы сделать то, что Вы после?
RewriteRule ^/vip/(.*)$ /$1?%{QUERY_STRING} [L]
Это заставит URL такой как http://www.example.com/vip/fred.html быть переписанным без / VIP.
У меня была такая же проблема с использованием wordpress, и я обнаружил, что проблема связана с отсутствием надлежащего обработчика для ошибок 401 и 403 ..
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Эти условия уже не должны перезаписывать URL-адрес существующие папки, но они не работают с папками, защищенными паролем. В моем случае добавление следующих двух строк к моему корневому файлу .htaccess устранило проблему:
ErrorDocument 401 /misc/myerror.html
ErrorDocument 403 /misc/myerror.html
Конечно, вам нужно создать /misc/myerror.html,
Итак, окончательное решение:
ErrorDocument 401 /misc/myerror.html
ErrorDocument 403 /misc/myerror.html
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Подробнее о причине этой проблемы я написал в моя конкретная ситуация, связанная с Wordpress и WebDAV на Dreamhost, которую я ожидаю от многих других на моем сайте .