Проблема с поддиректорией в Wordpress .htaccess

4 февр. 2011 г., 09:24:56
Просмотры: 8.19K
Голосов: 4

У меня возникли проблемы с доступом к поддиректориям в моей установке Wordpress, в частности к установке CodeIgniter по адресу mydomain.com/codeigniter. Технически это должно работать без проблем и распознавать папки по мере их создания. Однако этого не происходит. Я подозреваю, что проблема связана с плагином, но после их отключения проблема сохраняется (перенаправляет на страницу 404 Wordpress).

Временно я нашел решение. Если создать субдомен, что-то меняется, и все начинает работать как должно, обеспечивая доступ к папке как через прямой путь, так и через имя субдомена.

Есть идеи? Я перепробовал разные варианты с файлами .htaccess в обеих директориях, но их изменение не дает эффекта.

Обновление: Вот .htaccess Wordpress в корневой папке:

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

# НАЧАЛО WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?codeigniter/
RewriteRule . /index.php [L]
</IfModule>

# КОНЕЦ WordPress

И файл .htaccess CodeIgniter в поддиректории /codeigniter/.

DirectoryIndex index.php index.htm index.html
AddHandler application/x-httpd-php52 .php .php5 .php4 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /codeigniter
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
</IfModule>
3
Комментарии

Не могли бы вы добавить ваш файл .htaccess здесь?

User User
4 февр. 2011 г. 09:30:45

У вас есть копия вашего файла .htaccess, которую я могу посмотреть?

User User
4 февр. 2011 г. 09:32:16

@Jeff Wain - Я не совсем понял ваш вопрос. Похоже, у вас уже есть решение, так что именно вы ищете? И что касается файлов .htaccess — они у вас работают или нет?

MikeSchinkel MikeSchinkel
4 февр. 2011 г. 16:14:13
Все ответы на вопрос 1
2

Хотя статические файлы и директории работают с установкой WordPress, использующей mod_rewrite в корне сервера, вам может потребоваться исключить поддиректорию CodeIgniter из этого правила mod_rewrite.

Это можно сделать, разместив дополнительный файл .htaccess в директории CodeIgniter и отключив mod_rewrite там:

<IfModule mod_rewrite.c> 
RewriteEngine off
</IfModule>

Связано: apache - Отключение mod_rewrite для поддиректории

Обычно этого достаточно в моем случае. Однако задача может усложниться, если для этой поддиректории требуется собственная конфигурация mod_rewrite (как это бывает с некоторыми PHP-фреймворками).

Чтобы понять, как работает конфигурация Apache, ознакомьтесь с Конфигурационные файлы (Руководство Apache) и Директива AllowOverride (Руководство Apache).

4 февр. 2011 г. 16:20:08
Комментарии

Ок, это работает! Я проверил без применения поддомена, и вроде все работает, но посмотрим со временем, не решит ли WordPress снова перезаписать файлы, прежде чем я избавлюсь от этого. :)

Jeff Wain Jeff Wain
4 февр. 2011 г. 17:07:30

@Jeff Wain чтобы предотвратить такое, просто поместите это в отдельный файл .htaccess (например, в подкаталоге). WordPress будет изменять только файл .htaccess в каталоге установки. Дополнительно можно добавить это в конфигурацию сервера Apache. Это также не будет перезаписано WordPress.

hakre hakre
4 февр. 2011 г. 18:52:26