.htaccess htaccess重写丢失$\u进行第二次重写?

.htaccess htaccess重写丢失$\u进行第二次重写?,.htaccess,.htaccess,以下是我的两次重写: RewriteRule folder/(.*)/$ /folder/subfolder/index.php?s=$1 RewriteRule folder/(.*)/review/$ /folder/subfolder/review.php?s=$1 第一次重写非常有效,例如: http://www.site.com/folder/hello/ 但第二点: http://www.site.com/folder/hello/review/ 当$超过时,它不会通过“你好”

以下是我的两次重写:

RewriteRule folder/(.*)/$ /folder/subfolder/index.php?s=$1
RewriteRule folder/(.*)/review/$ /folder/subfolder/review.php?s=$1
第一次重写非常有效,例如:

http://www.site.com/folder/hello/
但第二点:

http://www.site.com/folder/hello/review/
当$超过时,它不会通过“你好”

为什么第二次重写会丢失其参数?

,因为它正在读取(*)以包含“…site.com/folder/hello/review/”,而这与任何重写规则都不匹配。 将重写规则更改为:

重写规则文件夹/([0-9a-zA-Z-]+)/review/$/folder/subfolder/review.php?s=$1


这将把它限制为字母数字和“-”字符。

这似乎不起作用,它缺少$\u GET now,正在打开index.php而不是review.phpreplace([\w\n\-]+)用([a-zA-Z0-9\-])替换([\n\-])抱歉,我没有办法测试它。这是一个很好的正则表达式备忘单。把更复杂的放在上面。如果它与第一个匹配,它就不会移动到第二个。