0

我的 htaccess 文件中有这个

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

这将允许人们访问server/login.phpserver/login但我怎样才能做到这一点,以便如果server/login.php在地址栏中输入它会重定向到server/login.

由于这个问题,我的网站获得了不同的点击,而不仅仅是一个网址,感谢您的努力和时间。

4

2 回答 2

1

您可以使用外部重定向执行此操作:

RewriteRule ^(.*)\.php$ $1 [R,L]

R 标志是一个临时重定向。如果事情如您所愿,您可以使用 R=301 使其成为永久重定向。有关更多信息,请参阅文档

编辑:根据您当前的规则,这将创建一个无限循环。如果您正在运行 Apache 2.3.9 或更高版本,请在内部重写规则上使用 END 标志。如果您不愿意或无法使用这样的 Apache 版本,您可以使用“THE_REQUEST”技巧来停止无限循环,因为这只会在请求来自外部时匹配:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)\.php[\s\?] [NC]
RewriteRule ^ %1 [R,QSA,L]
于 2013-08-03T12:44:07.227 回答
1

改变你的基本路径RewriteBase /path/

RewriteEngine on
RewriteBase /path/

RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)\.php$ $1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
于 2013-08-03T12:55:54.520 回答