htaccess透明重定向变为301

时间:2014-10-21 09:01:29

标签: php apache .htaccess mod-rewrite redirect

我正在尝试将http://example.com/a/b?passcode=hello&go=rate透明重定向到http://example.com/a/b/q?passcode=hello

'一个'总是一样的,而' b'继续改变

这是我在我的根文件夹中使用的.htaccess:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{QUERY_STRING} passcode=(.*)&go=rate
RewriteRule ^a(.*)?$ /a$1/q?passcode=%1 [L]

这没有按预期工作 - 当我运行http://example.com/a/b?passcode=hello&go=rate

时,我获得了301永久移动

如果我继续将RewriteRule更改为

RewriteRule ^a(.*)?$ /a$1/q?passcode=%1 [L,R]

它按预期工作,并将301重定向到http://example.com/a/b/q?passcode=hello

但是,如何使用透明重定向? 我是新手,所以欢迎所有评论!

1 个答案:

答案 0 :(得分:0)

您可以在根目录中使用此规则.htaccess:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{QUERY_STRING} (passcode=[^&]+)&go=rate [NC]
RewriteRule ^(a/[^/]+)/?$ /$1/q?%1 [L,NC]

请假设/a/文件夹中没有.htaccess。