php - htaccess 重写 - 文件名无法识别

标签 php mysql .htaccess url-rewriting php-7

我已经研究了好几天了,但我似乎无法弄清楚。

我的目录中有两个文件:

  1. index.php - 加载新闻部分中的文章列表
  2. article.php - 加载文章文件本身的内容

下面,我陷入了 .htaccess 文件中 index.php 文件的第一条规则。 (尝试了很多方法,包含文件和文件都正常,但是我这里的 htaccess 规则没有通过index.php。文章文件也加载得很好。除非应用下面这两行。)

链接:

domain.com/news/index/66/bass (works)

定义:

RewriteRule ^/?news/[\w-]+/([\w-]+)/([\w-]+)/?$ /news/index.php?news_id=$1&page_id=$1 [QSA,NC]

接下来,在该页面上我们单击:

domain.com/news/article/66-17506/SEO-FRIENDLY-TITLE

定义:

RewriteRule ^/?news/[\w-]+/([\w-]+)/([\w-]+)/?$ /news/article.php?news_id=$1&page_id=$1 [QSA,NC]

然后我就陷入了之前index.php 的定义。 我已经删除了 [L] 值并尝试了很多方法。我想所需要的只是要加载的article.php

任何帮助都会在网上保存很多文章!

最佳答案

问题是您匹配 URL 的两个正则表达式是相同的。因此,任何可能与article.php 规则匹配的内容都已经被index.php 规则捕获。您能否将这两条规则更改为:

RewriteRule ^/?news/index/([\w-]+)/([\w-]+)/?$ /news/index.php?news_id=$1&page_id=$1 [QSA,NC]
RewriteRule ^/?news/article/([\w-]+)/([\w-]+)/?$ /news/article.php?news_id=$1&page_id=$1 [QSA,NC]

关于php - htaccess 重写 - 文件名无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51813154/

相关文章:

php - 如何在所有到达服务器的 HTTP 请求中包含一个 php 脚本

javascript - Highcharts 中最后一列宽度的问题

php - 循环列表始终使用复选框插入列表中的第一个

php - 如何在 php 中的字符串中第一次出现数字/数字后检索数据

php - 为 codeigniter 表中的每一行设置 href 链接

php - 缓存页面资源

php - 这段代码是不是疯了?

php - CodeIgniter 日期或日期时间

mysql - 请求多个复选框项目时如何设置 Rails 表单?

zend-framework - 服务器中的zend框架部署