2013-05-04 2 views
2

У меня есть блог wp, где у меня есть некоторые категории, страницы, сообщения и так далее. Это URL схемы:Проблема Wordpress htaccess с существующим файлом

MySite/категория/category_name

MySite/category_name/POST_NAME

Все работает отлично, но теперь я столкнулся с проблемой с новой категорией под названием "PHP":

В корневом каталоге WP есть файл с именем «php.ini», который, как я заметил, автоматически создается моим хостинг-провайдером, чтобы разрешить установку настраиваемых директив php на сайте.

Проблема в том, что теперь все URL-адреса, начинающиеся с/php/whatever, возвращают ошибку 404.

Это .htaccess содержание:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
#some redirects from renamed posts... 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

</IfModule> 

# END WordPress 

Я думаю, что проблема в этом состоянии: RewriteCond %{REQUEST_FILENAME} !-f, потому что если я переименовать файл php.ini, все работает отлично. Я думаю, что если URL-адрес начинается с php /, и файл php.ini существует, он не обрабатывает это правило, поскольку условие не является истинным, хотя URL-адрес на самом деле не запрашивает файл.

Я пытался добавить обходной путь, как:

RewriteRule ^php/(.*)$ /index.php [L] 

Но это не работает. Я пробовал несколько способов, но я должен делать что-то неправильно, потому что я всегда получаю ошибку 404. Кажется, что правило, которое я устанавливаю, не выполняется, скорее всего, если регулярное выражение не будет выполнено. Также я попытался перенаправить все ходатайства с нестатическим расширением файла, как это:

RewriteRule \.(gif|jpg|jpeg|jpe|png|css|js)$ /index.php [L] 

И это на самом деле работало, но я не в состоянии выхода на WP-администратор, например.

Есть ли у меня очередь того, что я делаю неправильно?

спасибо.

+0

В конце концов я «решил» проблему, просто переименовав файл php.ini в php5.ini. Я заметил, что сервер все еще читает конфигурацию, и теперь правила .htaccess работают. Однако одно и то же правило работает или не зависит от существования этого файла, что, по моему мнению, не имеет смысла, поскольку у меня нет никаких условий относительно этого. –

ответ

0

Вы можете попробовать это, чтобы узнать, помогает ли оно.

Загрузите копию своего .htaccess, а затем удалите ее на сервере после этого перейдите к настройкам -> permalink и измените значение по умолчанию или, если по умолчанию измените на другое и сохраните, затем вернитесь к умолчанию и сохраните и после вы сделали это изменение обратно к пользовательскому или postname или тому, что вы хотели бы использовать.

Это генерирует новый .htaccess файл и может иногда исправлять старый, если проблема возникает. У меня также есть файл php.ini и я никогда не видел эту проблему, но тогда я никогда не делал класс php.

Удачи вам!

Смежные вопросы