.htaccess将另一个规则覆盖到其他页面

时间:2015-12-04 08:39:55

标签: php apache .htaccess mod-rewrite get

我的.htaccess文件中有以下重写文件:

RewriteRule ^page_edit_(.*) page_edit.php?page=$1
RewriteRule ^page page.php

例如,如果我转到/ page_edit_12,我会看到page.php的内容。但是我想看一下page_edit.php?page = 12。

使用以下规则,它会提供正确的参数。因此,如果我将此规则用于/ page_edit_12,我会看到page.php的内容?edit = true& page = 12

RewriteRule ^page_edit_(.*) page.php?edit=true&page=$1
RewriteRule ^page page.php

为什么我无法破解网址以便它可以访问另一个文件,如果找到与另一个URl的匹配(/ page in / page_edit_12)?

2 个答案:

答案 0 :(得分:3)

第二条规则的正则表达式匹配" /page_edit.php"并将其重写为/page.php,在模式的末尾添加$以限制它仅匹配/页面。

RewriteRule ^page_edit_(.*) page_edit.php?page=$1 [NC,L]
  RewriteRule ^page/?$ page.php [L]

答案 1 :(得分:1)

你应该将[L] - Last - Flag添加到你的第一行,这样就会在.htacces中结束这个过程:

RewriteRule ^page_edit_(.*) page_edit.php?page=$1 [L]