为什么这个htaccess工作了一点,然后没有?

时间:2012-09-03 17:56:12

标签: .htaccess

我正在尝试将人们重定向到登录页面的新网址, 以前它曾经工作过,我做了一些改动,哪种失败,因为我还在努力学习如何使用htaccess, 无论如何,我带回了第一个代码,并且出于某些尴尬的原因,它将不再起作用,

以下是代码:

# external redirect using R=301 to /login from /index.php?act=Login
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(index\.php/?|)\?act=Login(&|\s) [NC]
RewriteRule ^/login? [R=301,L]

有没有更好的方法来实现我的需求?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查RewriteCond行中的正则表达式。有(index\.php/?|)。管道字符要么很多,要么应该删除,否则你错过了子模式的第二个选项。

或者你应该检查简单的Redirect指令是否足够,而不是使用复杂的重写规则来完成一个可能很简单的任务。

重定向的基本语法是:

Redirect [status] <old-url> <new-url>

出于您的目的,以下内容应该有效:

Redirect 301 /index.php?act=Login /login