我需要隐藏从sitename.dom
到sitename.dom2
的重定向,保持字符串的其余部分不受影响。
现在我用:
RewriteCond %{HTTP_HOST} ^sitename.dom
RewriteRule ^(.*) http://sitename.dom2/$1 [P]
它完美无缺。但。由于我网站上的多语言,首页有以下路径:
sitename.dom2/lang
这就是为什么当用户调用 sitename.dom 时,他被重定向(隐藏)到 sitename.dom2 / 并且他正在获得404页面。
那么,请告知我如何仅针对确切的请求进行严格的重定向 sitename.dom ?
我曾尝试过
RewriteCond %{HTTP_HOST} ^sitename\.dom$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*) http://sitename.dom2\/lang [P]
没有运气。
BTW,网站语言子路径内部根本不受影响。sitename.dom/lang/page
的效果与sitename.dom/page
一样好
答案 0 :(得分:0)
只需在第一个/lang
指令中添加RewriteRule
:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sitename.dom$
RewriteRule ^ http://sitename.dom2/lang%{REQUEST_URI} [P]
答案 1 :(得分:0)
我必须在所有其他之前添加单个重定向。并且在此规则中使用dom2而不是dom1。
以下是解决方案:
RewriteEngine On
#redirect front page only:
RewriteCond %{HTTP_HOST} ^sitename\.dom2$ [OR]
RewriteCond %{HTTP_HOST} ^www\.sitename\.dom2$
RewriteRule ^/?$ "http\:\/\/sitename\.dom2/\lang" [L]
#redirect all other pages:
RewriteCond %{HTTP_HOST} ^sitename\.dom2
RewriteRule ^(.*) http://sitename\.dom1\/$1 [P]