我有一个像这样的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
我不知道我做错了什么,我花了几个小时谷歌搜索。请帮忙!
提前致谢
答案 0 :(得分:9)
试试这个并告诉我
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标志意味着:
此标志强制重写引擎附加查询字符串的一部分 替换字符串到现有字符串,而不是替换 它。如果要通过a向查询字符串添加更多数据,请使用此选项 重写规则。
所以你可以添加更多参数,例如:http://www.domain.com/thesection/hello/?page=1
这将输出:
Array (
[show] => hello
[page] => 1
)