使用mod_rewrite从请求中删除.php扩展名

时间:2014-08-27 20:14:50

标签: .htaccess mod-rewrite

我有一个关于godaddy的帐户,我试图让我的网站的网址通过做一些mod_rewrite脚本来省略路径末尾的.php扩展名,但我的脚本无效。这是:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php

如果有任何我未包含的内容或该脚本中的任何错误,请帮我解决。

我已经查看了有关此问题的不同类似帖子,但没有人给我任何帮助我解决此问题的答案。

1 个答案:

答案 0 :(得分:1)

如果启用MultiViews选项(apache内容协商),您将能够同时访问/page/page.php

Options +MultiViews

但如果您只想 /page(并将/page.php重定向到/page),您可以这样做

Options -MultiViews
RewriteEngine On

RewriteCond %{THE_REQUEST} \s/([^/]+)\.php [NC]
RewriteRule . /%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L]