Конфликт чистой ссылки и папки в корне

Главные вкладки

Аватар пользователя absolutic absolutic 8 августа 2008 в 14:48

Проблема следующая - при существовании одноименных чистой ссылки и папки в корне, не открывается чистая ссылка.
Необходимо, чтобы в корне сайта на друпале лежала папка upload и также существовала на сайте страница с одноименной чистой ссылкой www.site.com/upload
До создания папки страница открывается, после - The requested page could not be found.
На локале вообще - запрет доступа к папке.
Какие будут идеи, как оставить и папку и рабочую чистую ссылку?
Как-то в hook_menu вклиниться?
Спасибо заранее за любые подсказки.

Комментарии

Аватар пользователя Viacheslav Viacheslav 8 августа 2008 в 15:12

Думаю надо копать в сторону .htaccess. В RewriteCond устанавливаются различные флаги, в т.ч. для проверки условия существует ли физически папка. Вот пример (как раз из дистрибутива D6):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Поэксперементируйте.

Аватар пользователя kleorn@drupal.org kleorn@drupal.org 8 августа 2008 в 22:48

Наверное, можно добавить для конфликтного адреса отдельное RewriteRule (но уже без RewriteCond),то есть изменить приведённый выше код на что-то вроде
RewriteRule ^upload$ index.php?q=upload
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

К сожалению, я плохо помню синтаксис mod_rewrite, так что могу ошибаться в деталях или во всём вообще Smile

Аватар пользователя absolutic absolutic 12 августа 2008 в 13:18

Спасибо за наводку!
Удалось полечить добавлением дополнительного условия

RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} =/upload/
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]