【发布时间】:2019-05-16 12:41:30
【问题描述】:
我想把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 规则正常工作。
【问题讨论】:
-
你可以访问 apache .conf 文件吗?
-
是的,我想补充一点,除了这个之外,所有其他重写规则都在工作
-
请发布整个.htaccess,可能有冲突的规则
-
禁用
MultiViews,它通常是此类情况的罪魁祸首。
标签: php linux apache .htaccess