简单的Apache重写规则给出了不需要的404

时间:2017-06-14 14:37:12

标签: apache mod-rewrite url-rewriting

我有以下重写规则:RewriteRule ^/uk/(.*)$ http://www.hostname.uk/$1 [R,L]

重写来自:

的网址
  • http://www.hostname.uk/uk/home
  • http://www.hostname.uk/home

但是,如果您使用较短的地址查看http://www.hostname.uk/uk/home处的内容,则会获得一个空白的404页面。为什么是这样?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您拥有的规则是从/uk/home重定向到/home,但您没有任何其他方法可以在另一个方向上重写。这就是你需要的。您还应该使用我在此处执行的301重定向(永久)。您使用的是302(临时 - 默认值)。如果http://www.hostname.uk没有变化,您也不需要指定RewriteRule ^/uk/(.*)$ /$1 [R=301,L] RewriteRule ^/(.*)$ /uk/$1 [L]

.htaccess

我假设您在主Apache配置中执行此操作。如果它在as中,则需要更改。