[英]How can I hide php file extension using htaccess?
RewriteRule ^site/index$ site/index.php [NC,L]
此行确实成功隐藏了扩展名。 现在我不想访问带有扩展名的页面; 如果尝试使用扩展名访问该页面,则必须显示错误。 只有具有隐藏扩展名且必须可访问的扩展名。
它必须显示错误。
要在访问/site/index.php
时返回 403 Forbidden,您可以在现有重写之前执行以下操作:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^site/index\.php$ - [F]
检查REDIRECT_STATUS
的条件是必要的,以防止重写的 URL 也触发 403。
但是,改为重定向/更正此类请求对 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]
This makes sure that both /page
and /page.php
go to the same url ( /page
) and serve the same page/file ( /page.php
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.