mod_rewrite用于文件夹及其包含的页面

时间:2015-06-28 20:38:42

标签: php apache mod-rewrite

.htaccess代码:

RewriteEngine on
RewriteRule ^articles/([-a-z]+)\.html$ articles/article.php?slug=$1 [L]

我有一个文件夹[文章],其中包含两个页面:

index.php和 article.php

第一页显示文章列表,第二页实际使用参数[slug]从数据库中提取实际文章并显示它。

site.com/articles/this-is-an-article-title.html
site.com/articles/article.php?slug=this-is-an-article-title

代码工作正常,但问题是我无法看到index.php上的文章列表,而且它错误地通过了RewriteRule。

如何阻止此事?

1 个答案:

答案 0 :(得分:0)

在请求/articles/index.html目录时,您的RewriteRule可能会获取隐式articles/

  1. 禁用每个:

     DirectoryIndex index.php
    
  2. 或编写自定义RewriteRule以防止任何自动映射:

     RewriteRule ^articles/*$ articles/index.php [L]
    
  3. 也可以选择停用Options -MultiViews

    (这可能不是你的问题。但如果没有RewriteLog / access.log摘录,很难说。)