当前位置:  开发笔记 > 编程语言 > 正文

RewriteRule - a.php?a = 123到/ b/123

如何解决《RewriteRule-a.php?a=123到/b/123》经验,为你挑选了1个好方法。

我试图让Apache将/a.php?a=123重定向到/ b/123(其中123可以是1到9999之间的任何数字),但似乎无法让它工作.

这就是我在htaccess中所拥有的:

RewriteEngine on

RewriteRule ^a.php?a=([0-9]+) /b/$1 [L]
RewriteRule ^a.php$ /c/ [L]

随着这个转到a.php?a = 123导致404,但只是a.php按预期工作.我试过逃避?(RewriteRule ^ a.php \?a =([0-9] +)/ b/$ 1 [L])但它仍然不起作用.

我做错了什么?



1> Gumbo..:

查询字符串不是RewriteRule指令中测试的URI路径的一部分.这只能用RewriteCond指令测试:

RewriteCond %{QUERY_STRING} ^a=([0-9]+)$
RewriteRule ^a\.php$ /b/%1? [L,R]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^a\.php$ /c/ [L,R]

但是如果你想要它的另一种方式(请求/b/123被重定向到/a.php?a=123):

RewriteRule ^b/([0-9]+)$ a.php?a=$1 [L]

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有