.htaccess无效 - 从URL中删除.php文件扩展名

问题描述:

我无法使用.htaccess文件从URL中删除.php文件扩展名。.htaccess无效 - 从URL中删除.php文件扩展名

之前,所有页面都是HTML,我已经成功地重写了URL以删除.html扩展,但它似乎不适用于.php - 我只是收到了404错误。

的.htaccess内容

ErrorDocument 404 http://www.brianglassmandesign.com/404.php 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^brianglassmandesign.com [NC] 
RewriteRule ^(.*)$ http://www.brianglassmandesign.com/$1 [L,R=301,NC] 

# Remove file extension 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L] 
+1

最后一行在包含扩展名的'。*'中匹配。当你用与匹配但不包括扩展名的内容替换时会发生什么?像'RewriteRule ^([^ \。] +)$ $ 1.php [NC,L]' – Anton

+0

@Anton,如果OP请求'/ something',那么它肯定会解析为'/ something.php'? OP做出的唯一改变(貌似)是从'.html'到'.php' ... –

+0

你是对的@MikeRockett,它应该没关系。 – Anton

没有理由,为什么文件没有被拾起,兼顾的事实,你所做的唯一的变化是扩展。因此,我建议您仔细检查以确定请求的文件是否实际存在,并且已从旧的.html等效项重命名。

唯一.htaccess建议我可以提供是一种替代你有什么如下:

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule (.+) $1.php [L] 

这意味着,如果该文件存在,才会发生重写。因此,如果您请求/something/something.php存在于文件系统上,那么它将被相应地提供服务。

如果失败,您需要检查相关日志以确定问题所在。

+1

你已经解决了谜题,我的朋友。创建/某些东西并更新.htaccess与您的修改 - 一切似乎正常工作。谢谢! – Brian

+0

太棒了!请为他人的利益接受这个答案。 –