PHP-Mod_Rewrite扩展删除功能更改404的功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP-Mod_Rewrite扩展删除功能更改404的功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1297字,纯文字阅读大概需要2分钟。
内容图文
![PHP-Mod_Rewrite扩展删除功能更改404的功能](/upload/InfoBanner/zyjiaocheng/656/c01ddd5a504946ffab9562c2d086cc45.jpg)
当我尝试使用Apache服务器上的.htaccess文件从所有文件中删除PHP扩展名时,一切正常.扩展被删除,一切看起来都好多了.
但是,我有一个小问题:通常我进入诸如./nonexistent.php之类的页面时,会出现404错误.但是,当我重写URL并转到./不存在时,却收到500 Internal Server Error.
理想情况下,我只想将用户重定向到自定义的“找不到页面”页面,但是目前无法找到一种方法.
这是我正在使用的代码:
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$$1.php
我尝试设置:ErrorDocument 500 / nope,但是,这似乎也没有效果.
因此,总而言之,有谁知道如何重写扩展名,同时保持默认状态下“未找到页面”系统的相同功能?
解决方法:
当使用上述重写条件请求不存在的文件时,您将遇到无限重定向.
如果访问http://yoursite.com/i-dont-exist,则第一个条件为true,i-dont-exist是不存在的文件,因此它将尝试重写为i-dont-exist.php,也不存在,因此重写模式会一直持续到Apache限制递归并给您500错误(本质上,它会不断地重写为i-dont-exist.php.php.php.php.php … php,直到您遇到500错误.
您可以通过添加其他检查来解决此问题,以确保在重写之前存在扩展名为.php的文件.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f #make sure $1.php exists before rewriting
RewriteRule ^(.*)$$1.php
如果file.php存在,它将被重写,否则不会被重写,并且将显示404错误页面.
内容总结
以上是互联网集市为您收集整理的PHP-Mod_Rewrite扩展删除功能更改404的功能全部内容,希望文章能够帮你解决PHP-Mod_Rewrite扩展删除功能更改404的功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。