RewriteRule [L] все еще меняет URL - PullRequest
       15

RewriteRule [L] все еще меняет URL

0 голосов
/ 30 августа 2011

Я оказался с этой проблемой, которая сводит меня с ума.Я использую apache mod_rewrite для красивых URL, и мне нужно использовать динамические субдомены на сайте.Все отлично, и все сервер имеет де подстановочные знаки.Я использую следующий код в моем .htacess:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.mysite.com
RewriteCond %{HTTP_HOST} ([^.]+).mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/%1 [L]

Единственная проблема в том, что даже если я использую флаг [L], URL-адрес сайта изменится на http://mysite.com/subdomain.Я хочу, чтобы URL был похож на http://subdomain.mysite.com

Ссылка mysite.com/subdomain является динамическим URL и решается с помощью другого правила со следующим кодом:

RewriteRule ^([A-Za-z]+)$ filter.php?type=subdomain&subdomain=$1

Любая помощьцениться

1 Ответ

0 голосов
/ 01 сентября 2011

Если вы укажете внешний URL-адрес (что происходит при изменении субдомена), произойдет перенаправление заголовка. Я не думаю, что вы можете предотвратить это. Но почему бы вообще не пропустить этот шаг и сразу использовать второй RewriteRule?

Я не могу сейчас это проверить, но что-то вроде

RewriteCond %{HTTP_HOST} !^www.mysite.com
RewriteCond %{HTTP_HOST} ([^.]+).mysite.com [NC] 
RewriteRule ^(.*)$ filter.php?type=subdomain&subdomain=$1

должно работать.

...