多站点的条件.htaccess

时间:2016-07-29 09:44:09

标签: php .htaccess

我在.htaccess文件中遇到了一些小问题,我查看了一些堆栈链接,但无法解决我的问题。

我托管了一个多域名网站,我想要的是:如果有子域名并且我访问此网址

subdomain1.example.com/sitemap.xml
subdomain2.example.com/sitemap.xml

这应该分别从subdomains/subdomain1subdomains/subdomain2获取 sitemap.xml 文件,这对此规则非常有用:

RewriteCond %{HTTP_HOST} ^(.*)\.example(.*).com [NC]
RewriteRule ^(sitemap.xml|robots.txt)$ subdomains/%1/$1 [L,NC]

如果有www.example.com,则从项目根文件夹中提取 sitemap.xml

我试过这个,但没有工作:

RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(sitemap.xml|robots.txt)$ http://www.example.com/$1 [L,NC]

它给了我500 internal server错误。

1 个答案:

答案 0 :(得分:1)

RewriteCond %{HTTP_HOST} ^(.*)\.example(.*).com [NC]中的RegEx条件与www.example.com匹配,因此会有重定向循环。

您指定为RewriteCond %{HTTP_HOST} ^www.example.com [NC]的重写条件替代方案无法正常工作www.example.com

尝试此正则表达式

^(?!www).*\.example(.*).com

OR

RewriteCond %{HTTP_HOST} ^(?!www).*\.example(.*).com [NC]