htaccess RewriteRule保存查询字符串

Mar*_*000 6 .htaccess mod-rewrite

我有一个像这样的RewriteRule:

RewriteRule ^thesection$ /sections.php [L]
RewriteRule ^thesection/(.*)$ /sections.php?show=$1 [L]
Run Code Online (Sandbox Code Playgroud)

所以,如果我进入domain.com/thesection- >它完美无缺

但是!如果我输入domain.com/thesection/hello它重定向到domain.com/thesection?show=hello

我不知道我做错了什么,我花了几个小时谷歌搜索.请帮忙!

提前致谢

Boo*_*eus 9

试试这个让我知道

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

这将重定向domain.com/thesection/hellosections.php?show=hello

QSA标志意味着:

此标志强制重写引擎将替换字符串的查询字符串部分附加到现有字符串,而不是替换它.如果要通过重写规则向查询字符串添加更多数据,请使用此选项.

所以你可以添加更多参数,例如:http://www.domain.com/thesection/hello/?page=1这将输出:

Array (
 [show] => hello
 [page] => 1
)
Run Code Online (Sandbox Code Playgroud)