我有一个这样的RewriteRule:

RewriteRule ^thesection$ /sections.php [L]
RewriteRule ^thesection/(.*)$ /sections.php?show=$1 [L]

所以,如果我输入domain.com/thesection->效果很好

但是!,如果我输入domain.com/thesection/hello,它将重定向到domain.com/thesection?show=hello
我不知道自己在做什么错,并且花了数小时来搜寻。请帮忙!

提前致谢

最佳答案

试试这个,让我知道

RewriteEngine On
RewriteRule ^thesection/?$ /sections.php [L,QSA]
RewriteRule ^thesection/([a-z0-9\-_]+)/?$ /sections.php?show=$1 [L,QSA]

这会将domain.com/thesection/hello重定向到sections.php?show=hello
QSA标志的含义是:



因此,您可以添加更多参数,例如:http://www.domain.com/thesection/hello/?page=1,它将输出:
Array (
 [show] => hello
 [page] => 1
)

关于.htaccess - htaccess RewriteRule保留查询字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8444160/

10-11 16:51