在Apache2上的.htaccess
中,如何通过301重定向将主机名的所有大小写变体重定向到规范的小写版本,并保持路径的其余部分不受损害。子域(或不)也应该做同样的事情。
此外,通过IP访问不重定向。
的示例:
http://Example.com/foo
=> http://example.com/foo
http://A.example.com/foo
=> http://a.example.com/foo
http://A.EXample.com/foo?bar
=> http://a.example.com/foo?bar
http://208.67.222.222/foo
=> http://208.67.222.222/foo
答案 0 :(得分:1)
# Make sure hostname is lowercase only (or an IP address)
RewriteCond %{HTTP_HOST} !^(.+\.)?example\.com$
RewriteCond %{HTTP_HOST} !^[\d\.]{7,15}$
RewriteRule ^(.*)$ ${lowercase:%{HTTP_HOST}}/$1 [R=301,L]
答案 1 :(得分:0)
我搜索过,无法找到包含任意数量域名的在线解决方案。我的用例是我在localhost上工作,所以第一行(使用example.com)不能同时在localhost和我的域上工作,也不能用任何其他名称而不是localhost。
要添加到@philfreo的答案,因此:(复制行但只修改第一行)
# Make sure hostname is lowercase only (or an IP address)
RewriteCond %{HTTP_HOST} !^(.+\.)?(.+)?$
RewriteCond %{HTTP_HOST} !^[\d\.]{7,15}$
RewriteRule ^(.*)$ ${lowercase:%{HTTP_HOST}}/$1 [R=301,L]
走向philfreo!他的回应节省了很多时间。
帕拉贡