我想创建一个从页面到同一页面的 301,除了目标页面在 url 中有一个参数。浏览器向我显示错误(重定向太多),因此似乎存在无限循环。这是我的代码:
RewriteEngine on
Redirect 301 /index.php http://www.monsite.com/index.php?step=1
感谢我的建议:D
我想创建一个从页面到同一页面的 301,除了目标页面在 url 中有一个参数。浏览器向我显示错误(重定向太多),因此似乎存在无限循环。这是我的代码:
RewriteEngine on
Redirect 301 /index.php http://www.monsite.com/index.php?step=1
感谢我的建议:D
您需要对重定向进行条件化并在 PHP 中执行以防止无限重定向循环。
索引.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]