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]
这些规则运行正常,但我重定向到:
http://www.getshoutbox.com/test.php?id=X
如何恢复并坚持下去:
http://X.getshoutbox.com
答案 0 :(得分: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/
因为在这种情况下不需要。