所有子域上的多站点强制www.htaccess代码段
我以前在这里得到了一些关于有点复杂的.htaccess文件的帮助 它是一个多站点/域文件,使用所有子域上的多站点强制www.htaccess代码段,.htaccess,mod-rewrite,subdomain,no-www,.htaccess,Mod Rewrite,Subdomain,No Www,我以前在这里得到了一些关于有点复杂的.htaccess文件的帮助 它是一个多站点/域文件,使用%{HTTP_HOST}将非WW/301重写到www.widgets.com地址 RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 问题是RegexFu只查找www,然后添加www 如果有人链接到mail.widgets.com,这可能会导致一些重复的内
%{HTTP_HOST}
将非WW/301重写到www.widgets.com地址
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
问题是RegexFu只查找www,然后添加www
如果有人链接到mail.widgets.com,这可能会导致一些重复的内容问题,因为这被重定向到www.mail.widgets.com
总结如下:
我需要:
mail.widgets.com -> www.widgets.com
dogs.widgets.com -> www.widgets.com
www.mail.widgets.com -> www.widgets.com
www.dogs.widgets.com -> www.widgets.com
等等
我尝试过各种排列方式,但都没有成功:
RewriteCond %{HTTP_HOST} !^www\.[^\.]+\.com [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
没有骰子。我要么以循环结束,要么以其他问题结束
我只需要不需要的东西:
www. (anything but period) .com - > www. (last string before .com) .com
以及该标准:
(anything but period).com -> www. (anything but period).com
如果有人能帮我一把,我将不胜感激。试试:
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.[^.]+\.[^.]+\.[^.]+ [NC]
RewriteCond %{HTTP_HOST} ([^.]+)\.com$ [NC]
RewriteRule ^(.*)$ http://www.%1.com/$1 [R=301,L]
%1
反向引用与先前重写条件中的([^.]+)
匹配的分组。它会忽略域名之前的任何子域(如果有)。Closer。我以为它会起作用:)www.person.widgets.com不会重写为www.widgets.com:(我猜这是因为!^www.condition.person.widgets.com现在确实重写到了www.widgets.com……@SamanthaP添加了一个额外的OR'ed条件,以防它以www开头,但有一个以上的三级域名Odd。它的第一行似乎是:RewriteCond%{HTTP\u HOST}!^www([^.]+)\.com$[NC]哇,你可以在htacces中使用OR或布尔值?!?眼睛闪烁着可能性,所以()是捕获组…没有()的同一正则表达式仍然匹配,但不捕获,对吗?