我有一个非常类似的问题:Apache mod_rewrite - 喜欢文件而不是具有漂亮 URL 的目录
但是它不一样,上面链接中提到的解决方案对我不起作用。
我的目录结构如下所示:
/pages/articles/january.php
/pages/articles.php
/pages/home.php
/articles/
/index.php
现在,我包含在 index.php 页面中(取决于 url)。
例如,当用户输入地址www.domain.com(或www.domain.com/home)时,index.php将包含/pages/home.php
但是如果我输入这个 URL:www.domain.com/articles它将使链接像这样:www.domain.com/articles/ ?page[]=articles (换句话说index.php不会包含/pages/文章.php文件)
另一方面,这非常有效:www.domain.com/articles/january
这是我的 htaccess 文件:
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9+]*)/([a-zA-Z0-9+]*)$ %{DOCUMENT_ROOT}/index.php?page[]=$1&page[]=$2 [QSA,L]
RewriteRule ^([a-zA-Z0-9+]*)$ %{DOCUMENT_ROOT}/index.php?page[]=$1 [QSA,L]
我使用数组作为页面,因为我可以有子页面(并且子页面可以正常工作!)。
编辑:我发现了这个但是它不能解决我的问题:(
有人能告诉我为什么会这样以及如何解决吗?
或者,我怎样才能优先考虑文件而不是目录?
编辑 2:我通过删除“/articles/”目录解决了这个问题,但是我仍然对如何通过 htaccess 文件规则使其工作感兴趣。