使用 .htaccess 隐藏 .php 文件扩展名:故障排除提示
尽管按照以下说明使用 .htaccess 隐藏 .php 文件扩展名,您遇到困难。让我们调查该问题并提供修改后的解决方案。
您的初始 .htaccess 代码尝试重写特定“文件夹”目录中的 URL。但是,它看起来不完整,因为它缺少相应的 RewriteCond 指令。为了解决这个问题,以下修改后的代码应该可以工作:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^folder/([a-zA-Z_\-0-9]+)/?$ /folder/.php </IfModule>
RewriteCond 行确保仅当请求的文件不存在(即,它不是静态文件)时才应用规则。
此外,为了正确处理各种情况,请考虑使用更全面的 .htaccess 代码,如已接受的答案中建议的代码:
RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L] # Redirect external .php requests to extensionless URL RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L] # Resolve .php file for extensionless PHP URLs RewriteRule ^([^/.]+)$ .php [L]
此代码不仅隐藏了 .php 扩展名,还隐藏了 .php 扩展名。处理尾部斜杠、外部 .php 请求,并在内部解析无扩展名 URL 的 .php 文件。
请记住,验证 .htaccess 文件是否放置在项目的根目录中,并检查文件的权限以确保其可读网络服务器。
以上是为什么我无法使用 .htaccess 隐藏 .php 文件扩展名?的详细内容。更多信息请关注PHP中文网其他相关文章!