Позвольте мне получить это прямо ... У вас есть установка Drupal в <DocumentRoot>/drupal/
. Вы не хотите изменять каталог установки drupal, а также не хотите изменять DocumentRoot
в конфигурации вашего веб-сервера. Вы хотите перенаправить любой запрос, например /foobar.php
, в каталог drupal, что может привести к /drupal/foobar.php
. И все это без раскрытия всего материала пользователю. Прямо сейчас? Хорошо, я могу только предположить, что у вас есть веб-сервер Apache, иначе .htaccess не будет работать ...
Сначала убедитесь, что вам действительно разрешено использовать .htaccess, поэтому проверьте соответствующую директиву AllowOverride
в вашей конфигурации apache.
Тогда попробуйте это так в вашем <DocumentRoot>/.htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/drupal.*
RewriteRule ^/(.*)$ /drupal/$1 [P]
RewriteCond гарантирует, что вы не попадете в бесконечный цикл. Первая часть RewriteRule всегда является URL-адресом, запрошенным клиентом. Мы ставим префикс, совпадающий внутри скобок, с /drupal/
и заставляем его быть прокси-запросом через [P]
, чтобы apache выполнял только внутренний редирект (вместо отправки клиенту кода перенаправления «Документ перемещен»).
Кстати: я не проверял. У меня могут быть опечатки в коде. Прочитайте http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule для получения дополнительной информации.