Перенаправление поддоменов с помощью htaccess и внутренней ошибки 500 - PullRequest
0 голосов
/ 01 марта 2012

Мой файл .htaccess по какой-то причине вызывает 500 внутренних ошибок сервера, когда я пытаюсь перенаправить субдомен следующим образом:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com [NC]
RewriteRule ^(.*)$ folder/anotherfolder/$1 [L]

Мой текущий хост не перенаправляет субдомены сами по себе,поэтому я должен сделать это таким образом.Я пытаюсь добиться того, чтобы, когда пользователь вводит http://subdomain.domain.com/, он действительно видит http://domain.com/folder/anotherfolder.Однако я не хочу, чтобы сам домен в адресной строке менялся.Сам поддомен, по-видимому, является псевдонимом основного домена и, следовательно, указывает на ту же папку, что и основной домен.

Приведенный выше код также работает, когда результат регулярного выражения используется как GET, как таковой:1008 *

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com [NC]
RewriteRule ^(.*)$ folder/anotherfolder/index.php?p=$1 [L]

Однако значение GET "p" - это, например, не "test.php" (если вы пытались получить доступ к subdomain.domain.com/test.php), а весь путь отосновной домен (т.е. папка / anotherfolder / test.php).

Есть идеи, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Ах, похоже, это вызвано внутренней петлей перенаправления.Исправлено:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.domain.com [NC]
RewriteRule ^folder/anotherfolder/ - [L]
RewriteRule (.*) folder/anotherfolder/$1 [L]

Забавно, как ответ обычно проявляется сразу после того, как вы спросили кого-то.

1 голос
/ 02 марта 2012

Измените свой код на это:

RewriteEngine On

RewriteCond %{QUERY_STRING} !^p= [NC]
RewriteCond %{HTTP_HOST} ^subdomain\.domain\.com$ [NC]
RewriteRule ^(.*)$ folder/anotherfolder/index.php?p=$1 [L]
...