Как я игнорирую каталог в mod_rewrite?

Я знаю, что это старый вопрос, но сегодня он получил ту же ошибку и не работал над этими решениями.

Исправил его, установив опцию:

Project -> Architecture -> Build Active Architecture Only

на Да

и компиляция и сборка проекта должным образом

73
задан Bill the Lizard 28 January 2011 в 12:22
поделиться

6 ответов

Попытайтесь поместить это перед любыми другими правилами.

RewriteRule ^vip - [L,NC] 

Это будет соответствовать любому URI, начинающемуся vip.

  • - средства ничего не делают.
  • L средства это должно быть последним правилом; проигнорируйте все после.
  • NC средства, без случаев (таким образом, "VIP" также подобран).

Примечание, что это соответствует чему-либо начало vip. Выражение ^vip$ соответствовало бы vip, но не vip/ или vip/index.html. Эти $, возможно, было Ваше крушение. Если Вы действительно хотите сделать его правильно, Вы могли бы хотеть пойти с [1 111], таким образом, Вы не соответствуете vip-page.html

128
ответ дан Patrick McElhaney 24 November 2019 в 12:12
поделиться
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Это говорит, является ли это существующий файл, или каталог не касаются его. Необходимо быть в состоянии получить доступ к site.com/vip, и никакое правило перезаписи не должно происходить.

14
ответ дан sth 24 November 2019 в 12:12
поделиться

Вы упомянули, что у Вас уже есть .htaccess файл в каталоге, который Вы хотите проигнорировать - можно использовать

RewriteEngine off

В этом .htaccess для остановки использования mod_rewrite (не уверенный при использовании mod_rewrite в той папке если Вы будете тогда, это не поможет, так как Вы не можете выключить его).

8
ответ дан Jay 24 November 2019 в 12:12
поделиться

Я не уверен, понимаю ли я Вашу цель, но следующее могло бы сделать то, что Вы после?

RewriteRule ^/vip/(.*)$   /$1?%{QUERY_STRING} [L]

Это заставит URL такой как http://www.example.com/vip/fred.html быть переписанным без / VIP.

-1
ответ дан Peter Howe 24 November 2019 в 12:12
поделиться

У меня была такая же проблема с использованием 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,

3
ответ дан 24 November 2019 в 12:12
поделиться

Итак, окончательное решение:

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, которую я ожидаю от многих других на моем сайте .

9
ответ дан 24 November 2019 в 12:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: