我已经研究了好几天了,但我似乎无法弄清楚。
我的目录中有两个文件:
- index.php - 加载新闻部分中的文章列表
- 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/