奇怪的htaccess网址重写行为

时间:2019-05-16 12:41:30

标签: php linux apache .htaccess

我想将example.com/login重写为example.com/login.php
这曾经在我的旧服务器上工作,就像我在.htaccess文件中使用此规则一样:

RewriteRule ^login$ login.php [L]

当我迁移到新服务器时,此特定规则已停止工作,但是例如,如果我将login更改为loginx

RewriteRule ^loginx$ login.php [L]

该规则有效,当我转到example.com/loginx

时看到登录页面

此外,如果我更改文件名,该规则也将开始起作用

RewriteRule ^login$ loginx.php [L]

如果规则和文件具有相同的名称(在这种情况下为登录名),则该规则由于我无法理解的原因而无法正常工作,有人知道为什么会发生这种情况以及如何处理吗?

这是完整的.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteRule ^login$ login.php [L]
RewriteRule ^users$ users.php [L]
RewriteRule ^profile$ me.php [L]

users也会发生此问题(因为该文件的名称为URL)
profile规则正常工作。

2 个答案:

答案 0 :(得分:1)

多亏了04FS,我才开始工作
我刚刚添加了

Options -Multiviews

在我的htaccess文件顶部

答案 1 :(得分:-1)

您是否在.htaccess中在其上方添加了RewriteEngine On