我正在编辑.htaccess文件,以便从www.oldwebsite.com重定向到www.newwebsite.com +页面的特定重定向。
以下代码运作良好:
RedirectPermanent /page.html http://www.newwebsite.com/newpage.html
我遇到问题的时候是我尝试使用redirectpermanent重定向这样的页面结尾:
oldpage.php?id=1
此时我收到了404错误。
我尝试了另一种解决方案,即此代码
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html [R=301,L]
这是有效的,浏览器让我转到以下链接:
http://www.newwebsite.com/newpage2.html?id=1
有人可以帮我解决这个问题。我想使用Redirect永久(不起作用,与Redirect相同的东西)。我认为解决方案很简单,但我认为我没有得到细节。
谢谢!!!
答案 0 :(得分:1)
只需在rewriteRule末尾添加?
即可覆盖查询字符串
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html? [R=301,L]
答案 1 :(得分:0)
您可以使用PHP $ _SERVER ['PHP_SELF']方法。
所以,
$page = $_SERVER['PHP_SELF'];
header("Location: http://www.newwebsite.com$page");
它会将 http://www.oldwebsite.com/newpage.html 重定向到 http://www.newwebsite.com/newpage.html
或代替 $ _ SERVER ['PHP_SELF'] ,您可以尝试 $ _ SERVER ['REQUEST_URL']
答案 2 :(得分:0)
如果您尝试删除查询字符串,可以使用QSD flag。
RewriteCond %{QUERY_STRING} ^id=1$
RewriteRule ^oldpage\.php$ http://www.newwebsite.com/newpage2.html? [R=301,L, QSD]