2014-09-13 2 views
0
Options +FollowSymLinks -MultiViews 
RewriteEngine on 
RewriteBase/
RewriteCond %{HTTP_HOST} !www.getshoutbox.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.*)\.getshoutbox\.com 
RewriteRule ^(.*)$ http://www.getshoutbox.com/test.php?id=%1 [L,NC] 

Эти правила работают нормально, за исключением того, я получил перенаправлять:Как предотвратить перенаправление в .htaccess правило переписать?

http://www.getshoutbox.com/test.php?id=X 

Как вернуться, что и остаться на:

http://X.getshoutbox.com 

ответ

1

Проблема с правилом является то, что вы использовали полный домен с WWW, а не только внутренним перенаправлением:

Options +FollowSymLinks -MultiViews 

RewriteEngine on 
RewriteBase/

# do nothing avoid loop 
RewriteRule ^test.php$ - [L] 

# if domain is not www.yourdomain.com or yourdomain.com 
RewriteCond %{HTTP_HOST} !^(www\.)?getshoutbox\.com$ [NC] 
# then get the subdomain with ([^\.]+)?\.yourdomain.com 
RewriteCond %{HTTP_HOST} ^([^\.]+)?\.getshoutbox\.com$ [NC] 
# use the result below 
RewriteRule^test.php?id=%1 [NC,L] 

Поскольку мы уже знаем, что мы не на www.yourdomain.com или yourdomain.com, поймаем субдомен и передаем его с помощью %1 как id и удалим http://www.getshoutbox.com/, как это не требуется в этом случае.