我想将/index.php?id=1&time=10
重定向到/first-10
。
的.htaccess :
RewriteEngine On
RewriteCond %{QUERY_STRING} id=1&time=10
RewriteRule ^index\.php$ /first-10/? [L,R=301]
当我访问/index.php?id=1&time=10
重定向到/first-10/
时,它是一个404页面。请注意最后的斜杠。
问题出在哪里?
答案 0 :(得分:1)
您需要在内部将其重新修改为原始格式
您必须使用THE_REQUEST
来避免无限循环
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/(?:index\.php)?\?id=1&time=10\s [NC]
RewriteRule ^ /first-10? [R=301,L]
RewriteRule ^first-10$ /index.php?id=1&time=10 [L]
http://example.com/index.php?id=1&time=10
和http://example.com/?id=1&time=10
都会重定向到http://example.com/first-10
。http://example.com/first-10
会在内部将其重写回/index.php?id=1&time=10
答案 1 :(得分:0)
如果确实问题是.htaccess,结果页面是正确的并且调用了重定向,我就陷入其中:
“?”首先是10 /和[L,R = ??? 或者/之后的第10个???