可能重复:使用.htaccess删除.php扩展名
我对.htaccess知之甚少,我想要完成的是双重的 .
- 允许使用或不使用.php以及使用或不使用尾部斜杠调用.php的请求 . 例如 .
/profile.php
有效/profile
追加.php,有效/profile/
追加.php所以它有效
- 如果在尝试上述操作后文件或目录不存在,则将其视为404并重定向到另一个页面 .
/something
失败,重定向到/404.php?id=$1(已请求网址)
我有两个单独工作的规则,但我需要条件化这些或其他东西 . 任何意见,将不胜感激 .
RewriteEngine on
# This works for the PHP part.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/?$ $1.php
# This works for general 404 handling
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /404.php?url=http://%{HTTP_HOST}/$1 [L]
1 回答
Apache会自动将.php附加到
/profile
和/profile/
而不需要任何mod_rewrite . 你唯一应该处理的是404页面 .但是,如果由于某种原因它不起作用(例如apache配置不好):