我的主页url
就像这样http://mysite.com/sub/
我只是希望它重定向到新url
这样的http://mysite.com/sub/home?lang=en
这是我的code
Redirect 301 /sub/ /sub/home?lang=en
问题/错误:
新的url
变得像http://mysite.com/sub/home?lang=enhome
在home
en
连接
我该如何删除它?或者我的代码有问题吗?
不知道可能已经存在类似这样的问题
答案 0 :(得分:1)
这是因为Redirect
指令“连接”了2个路径节点,而你有一个在另一个内部(/sub/home
是里面 /sub
) 。例如,如果指令如下所示:
重定向301 / a / b
这意味着当有人请求http://mysite.com/a/foo/bar
时,他们会被重定向到http://mysite.com/b/foo/bar
。当您被重定向到/sub/home
时会发生什么情况,因为/sub/home
与模式/sub
匹配,并且home
会被追加,所以再次重定向 因此/sub/home?lang=enhome
。
您可以尝试使用RedirectMatch
,而不是“连接”路径节点:
RedirectMatch 301 ^/sub/?$ /sub/home?lang=en
或mod_rewrite:
RewriteEngine On
RewriteRule ^/?sub/?$ /sub/home?lang=en [L,R=301,QSA]