如何为丢失的页面编写重定向规则

时间:2017-05-02 14:47:35

标签: .htaccess url-rewriting url-redirection

我有一个像http://test.com/en/about.html这样的html页面,但是如果有人试图在服务器上找不到http://test.com/zh/about.html

有没有办法使用.htaccess文件将其重定向到http://test.com/en/about.html。如果是,怎么写这样的规则。

任何帮助将不胜感激。

非常感谢。

1 个答案:

答案 0 :(得分:1)

如果您想用另一个页面替换页面,那只是一个简单的RewriteRule

RewriteRule ^zh/about.html$ /en/about.html [R,L]

如果要将所有页面重定向到英语对应页面,则必须先使用该语言捕获该部分,然后将其附加到en。但是你必须小心并检查它是否已经en。否则,你将有一个重写循环

RewriteCond %{REQUEST_URI} !^/en/
RewriteRule ^../(.*)$ /en/$1 [R,L]

如果一切正常,您可以将R替换为R=301permanent redirect)。 从不使用R=301进行测试。

要使用任何其他长度前缀,请使用.+?代替..。这会查找一个或多个而不是仅仅两个字符

RewriteRule ^.+?/(.*)$ /en/$1 [R,L]