【发布时间】:2013-01-25 16:11:21
【问题描述】:
在为 SEO 目的实施 URL 重写时,我遇到了无限重定向循环。
示例网址
`<a><?php echo make_store_name_url($store_id); ?><?php echo $store_name; ?></a>`
我有一个重写动态 url 的函数 - 下面是一个例子
function make_store_name_url($store_id)
{
//build the keyword rich url
$url = SITE_URL . '/store/' . $store_id .'/';
//return the URL
return $url;
}
//function to redirect using 301
function fix_store_name_url()
{
$proper_url = get_proper_store_name_url();
if(SITE_URL . $_SERVER['REQUEST_URI'] != $proper_url)
{
header('HTTP/1.1 301 Moved Permanently');
header('Location: ' . $proper_url);
exit();
}
}
function get_proper_store_name_url()
{
$store_id = $_GET["store"];
$proper_url = make_store_name_url($store_id);
return $proper_url;
}
最后我在 htaccess 中的行重写了。请注意,当不使用重定向时,重写工作正常。
RewriteRule ^store/([0-9]+)/$ /store_selection.php?store=$1 [R=301,L]
不确定我的无限重定向循环出了什么问题。任何帮助将不胜感激。
【问题讨论】:
-
在
$proper_url = get_proper_store_name_url();之后插入这一行,看看这2个网址是否真的相似。echo SITE_URL . $_SERVER['REQUEST_URI'] . ' = ' . $proper_url; exit; -
我完成了上述操作,它们相似,所以我假设我的重写存在问题。 @blackpla9ue
-
如果您不介意可以粘贴我提供的代码打印的输出吗?
-
我在粘贴时注意到我得到了双倍的 URL
标签: php .htaccess url-rewriting seo infinite-loop