如果将基目录作为文件处理,则使用htaccess处理子目录

时间:2017-01-19 08:27:26

标签: php apache .htaccess mod-rewrite

我的根目录中有两个文件:news.phpnews-detail.php。我希望他们可以接下来的方式:

example.com/news -> /news.php
example.com/news/(\d+) -> /news-detail?id=(\d+)

所以我决定用我的.htaccess重写:

RewriteRule ^news/(\d+)$ /news-detail?id=$1 [L]

但这不起作用。据我所知,apache将url作为news.php加载,并且不要让规则有效。它看起来很棘手它不承认写的正则表达式。然后我决定添加检查文件是否存在,但它也不起作用:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

我该如何处理?我看到的唯一方法是重命名news.php(例如,改为news-all.php)并向.htaccess添加一条规则:

RewriteRule ^news$ /news-all [L]
RewriteRule ^news/(\d+)$ /news-detail?id=$1 [L]

还有其他办法吗?

0 个答案:

没有答案