我有这个:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ./index.php?path=$1 [L,NC,QSA]
我需要从浏览器地址中删除.php扩展程序
答案 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]