WordPress игнорируя подкаталог, ударил или пропустил - PullRequest
2 голосов
/ 09 июля 2011

У меня есть сайт, работающий на WordPress. Я тестирую новый сайт на нашем сервере в подкаталоге (sandbox/). Для нового сайта я использую правило переписывания .htaccess, аналогичное WP, которое переписывает для очистки URL. Я обнаружил, что страницы с эквивалентным путем в WP перенаправляют на страницу WP.

Например, у меня есть одна страница с URL-адресом /sandbox/supplies/information, который правильно перенаправляет на новый сайт. Тем не менее, у меня есть еще одна страница на /sandbox/events/, которая будет перенаправлена ​​на базовый директор на /events/.

Посмотрев вокруг подобных проблем людей, я попытался использовать RewriteCond %{REQUEST_URI} !sandbox/ [NC] и другие варианты (!^sandbox/.$ и тому подобное), но, похоже, это никак не отразилось. Я скопировал два файла .htaccess ниже.

Заранее спасибо за ваше время. Надеюсь, я достаточно хорошо объяснил ситуацию.

База .htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_URI} !sandbox/ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Подкаталог (песочница /) .htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /sandbox/index.php [L]

1 Ответ

0 голосов
/ 09 июля 2011

Хорошо ... Я использовал эту строку только в основном файле .htaccess, и все это отлично работало на моей имитированной установке:

RewriteCond %{REQUEST_URI} !^/sandbox/ [NC]

Могу ли я предложить изменить Options +FollowSymLinks на Options +FollowSymLinks -MultiViews (илиможет быть, вы уже пробовали это)?

Если URL содержит /sandbox/ часть, а ваш /sandbox/.htaccess не имеет строки RewriteOption inherit, то правила из родительского .htaccess НЕ используются вообще.


Насколько вы контролируете Apache?Можете ли вы редактировать файлы конфигурации (httpd.conf или httpd-vhost.conf)?Если вы можете - включить отладку перезаписи (RewriteLogLevel 9) и попробовать этот проблемный URL - вы должны точно видеть, что происходит (возможно, оно перенаправляется из приложения php?).Кроме этого, ваши правила абсолютно подходят для меня.


Не знаю, хорошая ли это идея или нет ... но в случае, если вы не сможете выяснить причину такого поведения, подумайтеобъединение этих 2 файлов .htaccess в 1 (изменения минимальны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...