从URL中删除.php扩展名

时间:2015-03-14 18:13:04

标签: php .htaccess

我找到并使用了这个.htaccess代码,它将我的.php URL重写为.com / privacy / - 即使我删除了斜杠,它也会很好地写出来;

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

但是当我导航到site.com/privacy.php时,它仍会显示,并且不会强制删除扩展名,也不会添加尾部斜杠。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以在root .htaccess中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=302,L,NE]

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

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

清除浏览器缓存后进行测试。