猿问

如何使用 htaccess 隐藏 php 文件扩展名?

RewriteRule ^site/index$ site/index.php [NC,L]

此行确实成功隐藏了扩展名。现在我不希望带有扩展名的页面可以访问;如果尝试使用扩展名访问该页面,则必须显示错误。只有隐藏了扩展名的扩展名才必须可访问。


幕布斯7119047
浏览 93回答 2
2回答

小怪兽爱吃肉

展示了如何像您所问的那样抛出错误消息,但为什么您要抛出错误消息而不是仅仅重定向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)

凤凰求蛊

它必须显示一个错误。要在访问时返回 403 Forbidden,您可以在现有重写之前/site/index.php执行以下操作:RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^site/index\.php$ - [F]REDIRECT_STATUS为了防止重写的 URL 也触发 403,检查 的条件是必要的。然而,重定向/更正此类请求会更利于 SEO。在旁边:此行确实成功隐藏了扩展名。我猜只是措辞,但“这条线”并没有“隐藏”任何东西。它专门将扩展添加回来。(扩展程序已隐藏在初始请求中。)
随时随地看视频慕课网APP
我要回答