3

目前我有一个页面位于:

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

在我的 htaccess 中,我有当前规则:

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

如果该页面的 URL 成为它自己的子域,规则会是什么样子:

http://page.example.com

谢谢你的帮助!!

到目前为止,我已经尝试了以下没有奏效的规则:

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

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

4

2 回答 2

1

尝试:

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

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

这目前只会与完全匹配的 URI 匹配/http://page.example.com/something因此,除非您将正则表达式更改为 from ^$to ,否则它不会匹配^something$

于 2012-08-15T20:21:15.590 回答
1

试试这个:

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com$ [NC]
RewriteRule .* retailer.php?linklabel=%1 [L,QSA]
于 2012-08-15T20:22:09.770 回答