如何解决如何使用htaccess隐藏php文件扩展名?
RewriteRule ^site/index$ site/index.php [NC,L]
此行确实成功隐藏了扩展名。现在,我不希望访问带有扩展名的页面;如果尝试使用扩展名访问该页面,则该页面必须显示错误。只有隐藏了扩展名的扩展名才能访问。
解决方法
它必须显示一个错误。
要在访问/site/index.php
时返回403禁止访问,您可以在现有重写之前先执行以下 :
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^site/index\.php$ - [F]
为了防止重写的URL也触发403,必须检查REDIRECT_STATUS
的条件。
但是,改为重定向/更正此类请求会更加适合SEO。
旁边:
此行确实成功隐藏了扩展名。
我想只是措辞,但“此行”并没有“隐藏”任何内容。它专门将扩展名添加回去。 (该扩展名已隐藏在初始请求中。)
, @MrWhite提供了一个答案,该答案显示了如何按照您的要求抛出错误消息,但是为什么要抛出错误消息而不是仅仅将example.com/page.php
重定向到example.com/page
?这是.htaccess的代码:
RewriteEngine on
RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]
这可确保/page
和/page.php
都转到相同的URL(/page
),并提供相同的页面/文件(/page.php
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。