我的根目录中有两个文件:news.php
和news-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]
还有其他办法吗?