Сложная проблема .htaccess и Drupal - PullRequest
1 голос
/ 23 сентября 2010

1) У меня есть сайт Drupal, расположенный по адресу http://example.com, и каталог, расположенный по адресу http://example.com/foo, но у меня также есть страница Drupal с псевдонимом http://example.com/foo.Как я могу получить страницу Drupal для обслуживания?В настоящее время я получаю запрещенную страницу 403 в результате объявления Options -Indexes в файле .htaccess Друпала, но я не хочу его удалять, поскольку не хочу, чтобы каталоги просматривались.

РЕДАКТИРОВАТЬ: Я решил это с помощью следующего правила:

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

2) Чтобы сделать проблему еще сложнее, учитывая тот же сценарий, если у меня естьфайл index.html внутри каталога http://example.com/foo/index.html Я всегда хочу, чтобы он имел приоритет над псевдонимом страницы Drupal (что он делает в данный момент - в настоящее время я изменил файл .htaccess, чтобы любой каталог с файлом index.html отображал его- DirectoryIndex index.php index.html).

РЕДАКТИРОВАТЬ:

Итак, как я могу написать RewriteCond, который будет проверять, есть ли файл index.html или нетвнутри каталога?

Ответы [ 3 ]

3 голосов
/ 23 сентября 2010

Я не гуру RewriteRule и уверен, что есть более хороший способ достичь этого, например с условным RewriteCond.

Но просто добавив

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

При переписывании по умолчанию Conds и правила заставляют это правило включаться для / foo /, а не для Drupal-default. Где RewriteCond %{REQUEST_FILENAME} !-d будет применять RewriteRule, только если что-то НЕ является каталогом.

2 голосов
/ 29 сентября 2010
RewriteCond %{REQUEST_FILENAME} -d  
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteRule ^(.*)$ http://localhost/s2k/index.php?q=$1 [L,QSA]
0 голосов
/ 29 сентября 2010
RewriteCond %{REQUEST_FILENAME}index.html -f
RewriteRule ^(.*)$ $1index.html [L]

RewriteCond %{REQUEST_FILENAME}/index.html -f
RewriteRule ^(.*)$ $1/index.html [L]

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