.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]
没有理由,为什么文件没有被拾起,兼顾的事实,你所做的唯一的变化是扩展。因此,我建议您仔细检查以确定请求的文件是否实际存在,并且已从旧的.html
等效项重命名。
唯一.htaccess
建议我可以提供是一种替代你有什么如下:
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.+) $1.php [L]
这意味着,如果该文件存在,才会发生重写。因此,如果您请求/something
和/something.php
存在于文件系统上,那么它将被相应地提供服务。
如果失败,您需要检查相关日志以确定问题所在。
你已经解决了谜题,我的朋友。创建/某些东西并更新.htaccess与您的修改 - 一切似乎正常工作。谢谢! – Brian
太棒了!请为他人的利益接受这个答案。 –
最后一行在包含扩展名的'。*'中匹配。当你用与匹配但不包括扩展名的内容替换时会发生什么?像'RewriteRule ^([^ \。] +)$ $ 1.php [NC,L]' – Anton
@Anton,如果OP请求'/ something',那么它肯定会解析为'/ something.php'? OP做出的唯一改变(貌似)是从'.html'到'.php' ... –
你是对的@MikeRockett,它应该没关系。 – Anton