使用带有重写规则和页面ID的通配符子域作为参数user.domain.com/pageid

时间:2015-07-13 00:24:20

标签: php .htaccess mod-rewrite subdomain wildcard

我想知道如何生成以下域名.Website.com /

我的.website.com正在使用

RewriteCond %{HTTP_HOST} !www\. RewriteCond %{HTTP_HOST} (.*)\.website\.com RewriteRule .* viewuser.php?username=%1 [L]

但是当我尝试在重写结束时添加其他参数(所以我可以使用_GET)它不起作用

2 个答案:

答案 0 :(得分:0)

最好不要在重写规则中将查询字符串参数添加到URL,而是让PHP解析URL并处理这种特殊或一般情况。通常这会实现一些重要的业务规则或技术规则来支持功能,而重写规则并不是放置它们的最佳位置 - 尽管您可以使用正则表达式,但使用它们制定花哨的规则往往会变得难以理解。它是第二个寻找代码和行为的地方。

但是,如果要在RewriteRule内添加查询字符串部分以及查询中已存在的部分,则必须添加QSA标志,因此最后一行将是< / p>

RewriteRule .* viewuser.php?username=%1 [L,QSA]

答案 1 :(得分:0)

您可能正在寻找QSA(QueryString Append)参数。它将旧查询字符串附加到新URL(?id = ...→?username = ...&amp; id = ...)

您只需将[L]替换为[L,QSA]即可将其添加到参数中。

有关其工作原理的更多信息,请参阅http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa

上的Apache文档