Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 在.htaccess中,如何重定向主机名的非小写版本_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 在.htaccess中,如何重定向主机名的非小写版本

Apache 在.htaccess中,如何重定向主机名的非小写版本,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,在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.

在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

我已经搜索过,但无法在网上找到包含任意多个域的解决方案。我的使用案例是我在localhost上工作,因此第一行(带有example.com)不会同时在localhost和我的域上工作,也不会在其他人使用的任何名称上工作,而不是在localhost上工作

因此,要添加到@philfreo的答案中:(复制行,但只修改第一行)

菲弗罗的道具!他的回答节省了很多时间


Paragon

我已经搜索过,但无法在网上找到包含任意数量域的解决方案。我的使用案例是我在localhost上工作,因此第一行(带有example.com)不会同时在localhost和我的域上工作,也不会在其他人使用的任何名称上工作,而不是在localhost上工作

因此,要添加到@philfreo的答案中:(复制行,但只修改第一行)

菲弗罗的道具!他的回答节省了很多时间


Paragon

请记住,每一个值得一提的搜索引擎都已经为您进行了规范化。除非你在这方面有严重的问题,否则这通常是不必要的。请记住,每一个值得一提的搜索引擎都已经为你进行了规范化。除非你在这方面有严重的问题,一般来说这是没有必要的。
# 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]
# 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]