.htaccess将子域重写为动态网址

时间:2016-03-18 11:20:19

标签: php apache .htaccess mod-rewrite url-rewriting

我使用htaccess mod-rewrite将子域网址重写为动态网址,例如: subdomain.example.com/shop 会被重写为 example.com /店铺/?页=子域

以下代码正常运行:

RewriteEngine On
RewriteCond %{HTTP_HOST} (.*)\.example\.com [NC]
RewriteRule ^(.*)$ http://example\.com/$1/?page=%1 [L,P]

但问题是,如果我们访问: subdomain.example.com (没有" shop"在网址末尾),它会显示404错误页面,因为它会读取网址为: example.com//page=subdomain ,带有双斜线" //"因为" $ 1"是空的。

无论如何,我们可以把" $ 1"在条件是如果它是空的然后削减" /"它旁边也会被移除,因此网址应该被理解为 example.com/page=subdomain ,在"页面之前只有一个斜杠"参数β

非常感谢任何htaccess专家可以帮助我。

谢谢!

1 个答案:

答案 0 :(得分:0)

当然,只需为“没有任何”情况明确添加单独的规则:

RewriteCond %{HTTP_HOST} (.*)\.example\.com [NC]
RewriteRule ^$ http://example\.com/?whatever [L,P]