域通用url重写正则表达式改变二级域包括www



我试图提出重定向规则,将普遍工作在所有二级域名重定向到WWW,我正在努力与正则表达式。有很多主题,但他们都建议使用命名域名,我相信它可以做得更好。

下面是我到目前为止的内容:http://regexr.com/393vp

编辑:显然,链接到第三方编辑器不足以使问题不偏离主题。我需要的正则表达式必须匹配

domain.tld
2nddomain.tld
another-domain.tld

但不

www.domain.tld
one.domain.tld
one.two.domain.tld

当使用多行选项时,我无法让它在示例数据上很好地工作,但是如果您单独提供每行,那么这将匹配需要在它们前面加上"www."的那些:

^[^.]*.[^.]*$

这只是一行的开始,无限多个非点,一个点,无限多个非点,然后是一行的结束

试试这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www)[^.]+.example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [QSA,NE,L,R]

一旦您对重定向工作感到满意,您可以将R更改为R=301以使其永久存在。这假设mod_rewrite是安装为htaccess文件激活。如果您不确定,可以查看phpinfo();输出中的已安装模块列表来检查是否安装了mod_rewrite默认情况下,htaccess文件不启用mod_rewrite。如果您正在管理自己的服务器,请打开httpd.conf并确保webroot目录块包含以下一行:AllowOverride FileInfoAllowOverride All

最新更新