Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在从URL中删除.php扩展名_Php_.htaccess - Fatal编程技术网

正在从URL中删除.php扩展名

正在从URL中删除.php扩展名,php,.htaccess,Php,.htaccess,我已经找到并使用了这个.htaccess代码,它可以将我的.php URL重写为I.e..com/privacy/——即使我删除了尾随斜杠,它也可以很好地编写它 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^/]+)/$ $1.php RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php RewriteCond %{REQUEST_FILENAME} !-f RewriteC

我已经找到并使用了这个.htaccess代码,它可以将我的.php URL重写为I.e..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时,它仍然会显示,并且不会强制删除扩展,也不会添加尾部斜杠


有人能帮忙吗?

您可以在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]

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

谢谢,但您的代码在我的网站上不起作用。当我转到.com/privacy时,它根据我的需要将其改写为.com/privacy/但没有更改.com/privacy.php。谢谢你…不,你不明白。它会将URL更改为
example.com/privacy/
,但会显示
example.com/privacy.php
的内容。确保.php文件和.htaccess直接位于
DocumentRoot
下,而不在子目录中。