【发布时间】:2017-09-15 04:37:59
【问题描述】:
我正在使用 .htaccess 文件来隐藏 URL 中的 .php 扩展名。虽然它工作正常,但我现在还必须在页面上显示的所有链接中隐藏 .php 文件扩展名。
例如,当我将鼠标悬停在链接上时,其 URL 会显示状态栏并包含 .php 扩展名。如何从链接 URL 中也删除 .php 或在浏览器的状态栏中完全隐藏 URL?
我在我的 .htaccess 文件中使用以下代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]
## hide .php extension snippet
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
# To remove www header
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
(代码最初基于this answeranubhava。)
我的 HTML 文件中的链接看起来像 menu1.php、menu2.php 等。当我单击这些链接时,浏览器 URL 栏中显示的 URL 看起来像 domain.com/menu1,这很好。但是在状态栏中,当我将鼠标悬停在这些链接上时,它仍然显示menu1.php。
如何在状态栏中隐藏.php 后缀?我是否必须手动更改所有链接中的所有 URL,或者有什么方法可以隐藏它们?
【问题讨论】:
标签: php html mod-rewrite url-rewriting