htaccess-无法从url中删除文件扩展名php
我在尝试从文件名中删除文件扩展名,但问题在于它显示删除了它,但是当我再次登录时,它不会重定向到我的主页。htaccess-无法从url中删除文件扩展名php
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
谢谢
在您重定向只是不带扩展名,例如,输入页面名称。 header('Location:index');或redirect_user('index');并在你的.htaccess文件中使用下面的代码。现在浏览器上的链接将被称为“本地主机/索引”
RewriteEngine on
RewriteRule ^([^./]{3}[^.]*)$ /index.php?page=$1 [QSA,L]
我认为你的规则只是一点点关闭。您正在使用THE_REQUEST
将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]
它不工作....我无法登录时,我使用这些规则 – Aisha
你能更具体一点?我们不知道你的设置如何。你是什么意思,它不工作?你有错误吗?还有什么是您使用的EXACT网址?你是什么意思,你不能登录?怎么了? –
你在浏览器的位置输入了什么网址? – starkeen
www.example.com/homePage.php – Aisha
为什么在RewriteBase指令中使用反斜杠? – starkeen