Как создать перенаправление из подкаталога в корневой домен? - PullRequest
0 голосов
/ 26 апреля 2010

Я пытаюсь перенаправить все запросы на domain.com/drupal на domain.com, включая все подкаталоги в /drupal.

Я видел несколько ответов, рассказывающих мне, как сделать противоположное с помощью .htaccess, но ничего не поделаешь. Я пробовал следующую строку в .htaccess-

RewriteRule /drupal/* ^/(.*)

, а также несколько вариантов выше, основанных на этих ответах, но не повезло.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 апреля 2010

Позвольте мне получить это прямо ... У вас есть установка 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 для получения дополнительной информации.

0 голосов
/ 26 апреля 2010

Попробуйте эту строку:

RewriteRule /drupal/(.*) /$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...