2012-06-26 60 views
1

我想创建一个301从一个页面到同一页面,除了目标页面在url中有一个参数。浏览器显示一个错误(太多重定向),所以它似乎有一个无限循环。这是我的代码:.htaccess - 301重定向如果没有查询字符串

RewriteEngine on 
Redirect 301 /index.php http://www.monsite.com/index.php?step=1 

感谢指点我为:d

+0

请尝试和接受一些较旧的问题的答案......你的接受度是20%,而从帮助您阻止他人。 – DeaconDesperado

回答

7

你需要条件化重定向并做它在PHP防止无限重定向循环。

的index.php:

if(!isset($_GET['step'])){ 
    header('Location:http://www.monsite.com/index.php?step=1'); 
} 

您有它配置将无限期地重定向,因为没有什么话说到发动机的方式“不尽快URL变步设置重定向我。”

有一些方法可以在.htaccess文件中做到这一点,但由于这些类型的重定向通常是应用程序逻辑,因此在脚本中直接执行它似乎更有意义。

或者,对于纯的.htaccess解决方案:

#if query string is empty 

RewriteCond %{QUERY_STRING} ^$ 

#match on/for root, or .index.php in request and send to query string version 

RewriteRule ^(/|index.php)?$ /index.php?step=1 [R=301,L] 
+0

嗨,我想只使用htaccess ...感谢您的帮助 – JojoLapin45

+0

@ JojoLapin45编辑 – DeaconDesperado

+0

非常感谢你,它的作品就像一个魅力:) – JojoLapin45

相关问题