Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
htaccess-无法从url php中删除文件扩展名_Php_.htaccess_Mod Rewrite - Fatal编程技术网

htaccess-无法从url php中删除文件扩展名

htaccess-无法从url php中删除文件扩展名,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我正在尝试以下规则从文件名中删除文件扩展名,但问题是它显示它已被删除,但当我再次登录时,它不会重定向到我的主页 Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase \ RewriteCond %{HTTP_HOST} !^www.example.com$ [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] RewriteCond %{THE_R

我正在尝试以下规则从文件名中删除文件扩展名,但问题是它显示它已被删除,但当我再次登录时,它不会重定向到我的主页

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase \

RewriteCond %{HTTP_HOST} !^www.example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L] 

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

谢谢

在重定向中,只需键入不带扩展名的页面名称,例如标题(“位置:索引”)重定向用户(“索引”)并在.htaccess文件中使用下面的代码。现在浏览器上的链接将显示为“localhost/index”


我觉得你的规则有点不对劲。您正在使用
请求
将php扩展重定向到非php扩展,但在重写规则中未在
%1
之后使用
/
,因此当读取下一个规则时,它不匹配,因为只有在该规则中存在
/
时,它才会在内部重定向。因此,在第二条规则中的%1之后添加一个正斜杠,或者在最后一条规则中选择反斜杠。在最后一条规则中,我只是将其设置为可选的,这样它将以任何方式匹配

试试这个更新,看看它是如何工作的

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /([^&\ ]+).php [NC]
RewriteRule ^ /%1? [R=301,L] 

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

您在浏览器的位置输入的url是什么?www.example.com/homePage.phpWhy您在RewriteBase指令中使用反斜杠?这可能有帮助:我尝试了所有这些,但没有任何帮助。您可以更具体一点吗?我们不知道您的设置如何。你说它不工作是什么意思?你有错误吗?另外,您使用的确切url是什么?你不能登录是什么意思?会发生什么?
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]  

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /([^&\ ]+).php [NC]
RewriteRule ^ /%1? [R=301,L] 

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