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


.htaccess overwrite another rule to other page

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

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

例如,如果我转到/page_edit_12,我会看到page.php的内容。但我想看到page_edit.php吗?第12页。

根据以下规则,它会给出正确的参数。所以,如果我按照这个规则访问/page_edit_12,我会看到page.php的内容吗?edit=true&第12页

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

为什么我不能破坏URL,以便它可以访问另一个文件,如果发现与另一个URL匹配(/page_edit_12中的/page)?

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

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

您应该将[L]-Last-Flag添加到第一行,这样它将在.htacces:中结束该过程

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