当用户访问 test.domain.co.uk 时,我想在 channels / index.php?url = test 中向他们显示页面 >测试可以是任何东西。
我使用以下代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.co\.uk$
RewriteCond %{HTTP_HOST} ^.+\.domain\.co\.uk$
RewriteRule ^(.*) %{HTTP_HOST}$1 [C]
RewriteRule ^(.+)\.domain\.co\.uk/? channels/index.php?url=$1 [L]
但是,如果您拨打 http://test.domain.co.uk/login/
,我也希望它能够正常工作它会显示 channels / index.php?url = test& page = login
我尝试了几种方法,只是将其显示为?url = test
答案 0 :(得分:0)
添加
RewriteRule ^(.+)\.domain\.co\.uk(.+)$ channels/index.php?url=$1&page=$2 [L]
到你的规则结束。并在上一条规则的模式中添加$
:
RewriteRule ^(.+)\.domain\.co\.uk/?$ channels/index.php?url=$1 [L]
然后,为了避免循环,请将其添加到顶部:
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
答案 1 :(得分:0)
您可以使用此规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.co\.uk$
RewriteRule ^((?!channels/index\.php).*)$ /channels/index.php?url=%1&page=$1 [L,QSA]