为了账号安全,请及时绑定邮箱和手机立即绑定

隐藏php扩展而不删除实际文件中的.php

隐藏php扩展而不删除实际文件中的.php

PHP
子衿沉夜 2022-11-12 13:17:07
这是使用 htacess 隐藏 php 扩展的最常用方法,但这仅在实际文件没有扩展名时才有效,例如index.php必须将文件更改为indexthis 在开发模式下不适合,现在有办法隐藏扩展名并仍然保持文件名完整?  # Run Php without filename extensionRewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*)$ $1.php# Return 404 if original request is .phpRewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"RewriteRule .* - [L,R=404]这是我的文件结构我的网站 [根文件夹]索引.php关于.php视图文件夹[根目录内]索引.php关于.php
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您发布的方法完全符合您的要求。您在文件系统上有一个“index.php”文件,您的 URL 类似于“www.mysite.com/index”(URL 中没有 .php 扩展名)。


RewriteEngine on

# The requested filename "/index" is not a directory

RewriteCond %{REQUEST_FILENAME} !-d

# There is a file on the file system named as the request, with extension .php

RewriteCond %{REQUEST_FILENAME}.php -f

# If all of the above is true, pretend that the ".php" file had been called

# by rewriting the request appending .php

RewriteRule ^(.*)$ $1.php

您不需要将“index.php”重命名为“index”。


如果您还想在指定 .php 时阻止访问,请将此规则放在上面的规则之前。现在,“mysite/index”可以工作,“mysite/index.php”不会。


# Return 404 if original request is .php

RewriteCond %{REQUEST_FILENAME} "\.php$"

RewriteRule .* - [L,R=404]

请注意,还有其他几种方式可能会让人意识到您的网站使用 PHP,而 php-to-404 规则没有多大意义。


查看完整回答
反对 回复 2022-11-12
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信