我需要从以下位置重定向访问者:
/plug/survey/survey.php?22
到
/publications.php?1.articles.view.547
我对 .htaccess 和 php 的了解有限,想知道是否有人对我有任何提示/想法?任何帮助将不胜感激!
谢谢
您可以在 htaccess 文件中编写此代码
RewriteEngine on
Redirect /plug/survey/survey.php?22 /publications.php?1.articles.view.547
也读这个
添加到survey.php的顶部:
<?php
if ($_SERVER['QUERY_STRING'] == "22") {
header("Location: http://example.com/publications.php?1.articles.view.547");
exit;
}
如果只是一个文件,则可以使用 header('Location: '.$url); 在 php 的顶部 - 请参阅http://php.net/manual/en/function.header.php
您的问题确实缺乏重要信息:
“1.articles”是从哪里来的——它是一个固定的字符串吗?“547”是从哪里来的,我猜它是从某种数据库查找中来的?
如果是这样,使用简单的重写规则就没有简单的方法来做到这一点。最好的解决方案很可能是编写一个您重定向到的小型 php 脚本。在该脚本中,您评估请求参数(php 变量 $_SERVER 等),进行数据库查找并使用收集到的信息将重定向标头发送到浏览器(使用 phps 'header()' 方法)。
我认为你的解决方案是
header("location:/publications.php?1.articles.view.547");
您可以使用 .httaccess,但如果您希望用户进入该页面,则不能使用它,因为它会在阅读该页面上的任何代码之前重定向您,但header()
会首先阅读代码,如果任何代码不好,则重定向像这样,
if($varisgood){
// not redirect
}
else{
//redirect
}