Проблемы с правилами WordPress mod_rewrite при запросе существующих файлов - PullRequest
1 голос
/ 08 августа 2010

пожалуйста, посмотрите на мой .htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Для Wordpress это работает нормально.

Но у меня проблема: у меня есть каталог с именем lo , используемый для обмена ссылками, не имеющий никакого отношения к блогу Wordpress. Теперь я не могу получить доступ к своему каталогу lo , он перенаправляет меня на пост WordPress. Почему?

1 Ответ

1 голос
/ 09 августа 2010

Указывает ли /lo/ DirectoryIndex на /lo/index.php?

Если да, и, если ваш ответ на вопрос Пекки "Да", проблема, вероятно, возникла в четвертой RewriteRule.Запрос к /lo/ отображается на /lo/index.php, что соответствует

RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]

... и переписывается на index.php в корне вашего сайта, который является файлом WordPress.Я не уверен, в чем смысл этого правила (оно блокирует доступ к файлам WordPress .php, но в некотором смысле супер-общего характера), поэтому я не знаю, как лучше всего его согласовать,но следующее будет работать:

RewriteCond %{REQUEST_URI} !^/lo
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...