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

标签 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 以便它可以到达另一个文件,即使找到与另一个 URl 的匹配项(/page in/page_edit_12)?

最佳答案

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

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

关于php - .htaccess 将另一个规则覆盖到其他页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084035/

相关文章:

php - 将 PHP 伪代码转换为 Tornado/Python

Ubuntu 14.04 32 位上的 Apache Mesos

apache - 为什么在我的 apache 服务器中 https 比 http 更快?

php - 按关系分页并排序

php - 性能调整 PHP 时间查询

php - 文件获取内容(https ://url) fails

java - 在 Apache 和游戏服务器之间拆分 https

php - htaccess 中的 SetEnvIf Referer

php - url 中的 htaccess rewriterule 2 参数

php - 将网站上传到 drupal 时出现 403 Forbidden