htaccess重写子域到页面的规则

时间:2012-08-15 20:08:33

标签: .htaccess rewrite subdomain rule

目前我有一个页面位于:

http://www.example.com/site/page

在我的htaccess中,我有现行规则:

RewriteRule ^site/(.*)$ retailer.php?linklabel=$1 [QSA]

将该网页的网址变为自己的子网域,规则是什么样的:

http://page.example.com

感谢您的帮助!!

到目前为止,我已尝试过以下无效的规则:

RewriteRule http://(.*)$.example.com retailer.php?linklabel=$1 [QSA]

也许我需要先在cpanel上做一些关于通配符子域的事情?我不太确定......

2 个答案:

答案 0 :(得分:1)

尝试:

RewriteCond %{HTTP_HOST} !^www.[NC]
RewriteCond %{HTTP_HOST} ^(.+?)\.example.com$ [NC]
RewriteRule ^$ retailer.php?linklabel=%1 [L,QSA]

您无法与RewriteRule中的主机匹配,因此您需要针对%{HTTP_HOST}中的RewriteCond var进行匹配,然后使用 { {1}} 反向引用以获得该匹配。

目前这只会匹配正是%1的URI。因此,除非您将常规快递从/更改为http://page.example.com/something,否则它将与^$不匹配。

答案 1 :(得分:1)

试试这个:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com$ [NC]
RewriteRule .* retailer.php?linklabel=%1 [L,QSA]