我有一个像http://test.com/en/about.html这样的html页面,但是如果有人试图在服务器上找不到http://test.com/zh/about.html。
有没有办法使用.htaccess文件将其重定向到http://test.com/en/about.html。如果是,怎么写这样的规则。
任何帮助将不胜感激。
非常感谢。
答案 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=301
(permanent redirect)。 从不使用R=301
进行测试。
要使用任何其他长度前缀,请使用.+?
代替..
。这会查找一个或多个而不是仅仅两个字符
RewriteRule ^.+?/(.*)$ /en/$1 [R,L]