htaccess从以下位置删除.php扩展名

时间:2014-04-22 06:42:49

标签: apache .htaccess mod-rewrite

我有这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?path=$1 [L,NC,QSA]

我需要从浏览器地址中删除.php扩展程序

3 个答案:

答案 0 :(得分:1)

您可以使用这两个规则来隐藏.php扩展程序:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

答案 1 :(得分:1)

这是为了回答您在问题下面的评论:

RewriteEngine on

RewriteRule ^(.*)\.php(.*)$ $1$2 [QSA,L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?path=$1 [L,NC,QSA]

但是我真的没有看到这一点。 " .php"应该在哪里?这些网址的扩展来自哪里?我的意思是用户不会写下自己查询系统的网址。相反,他们点击链接,该链接必须是您之前发送的内容。显然,您的方法应该是首先发送不包含该文件扩展名的链接!

答案 2 :(得分:0)

RewriteCond%{REQUEST_FILENAME}上的RewriteEngine!-d RewriteCond%{REQUEST_FILENAME} .php -f RewriteRule ^(。*)$ $ 1.php [NC,L]