我的脚本有一个小问题。我有一个表格与分钟。 2个字段和最大值4是动态添加的,所以基本上我发送2个vars或3个或4个。我希望我足够清楚。
如果我手动访问网址,重写就可以了。
RewriteRule ^([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/? browse.php?c=$1&j=$2&l=$3&k=$4 [L,QSA]
但问题是,在提交表单后,我无法将页面重定向到新的URL。
我在PHP header.php中使用此代码:
$url = "";
if(isset($_GET["c"])) $url .= $_GET["c"]."/";
if(isset($_GET["j"])) $url .= $_GET["j"]."/";
if(isset($_GET["l"])) $url .= $_GET["l"]."/";
if(isset($_GET["k"])) $url .= $_GET["k"]."/";
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.samedomainhere123.com/'.$url);
这只是一个示例,代码更大但基本上做同样的事情(如果GET var为空我为前2个vars添加默认值)。
启用重定向功能后,我进入循环。
我该怎么办?是否可以使用htaccess进行重定向?
谢谢。
答案 0 :(得分:1)
你需要添加一些php代码来检查所做的请求*实际上是否包含browser.php
的请求:
if(strrpos($_SERVER['REQUEST_URI'],'/browse.php')===true) {
$url = "";
if(isset($_GET["c"])) $url .= $_GET["c"]."/";
if(isset($_GET["j"])) $url .= $_GET["j"]."/";
if(isset($_GET["l"])) $url .= $_GET["l"]."/";
if(isset($_GET["k"])) $url .= $_GET["k"]."/";
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://www.domain.com/'.$url);
}