我必须{3,000}有超过3,000个网址301 redirect
。我意外地在很多URL中复制了城市/州的使用,这使得它们重复且太长。我可以以编程方式为需要if statements
的网址生成超过3,000 301 redirected
个redirects
。但是,这将是每页顶部的数千行代码。以下是使用此方法的3,000多个网址中的3个示例if($_SERVER['REQUEST_URI'] == 'central-alabama-community-college-alexander-city-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/central-alabama-community-college-alexander-city");
exit;
}
if($_SERVER['REQUEST_URI'] == 'athens-state-university-athens-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/athens-state-university-alabama");
exit;
}
if($_SERVER['REQUEST_URI'] == 'auburn-university-auburn-alabama') {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/auburn-university-alabama");
exit;
}
。
$redirects = array('central-alabama-community-college-alexander-city-alabama' => 'central-alabama-community-college-alexander-city','athens-state-university-athens-alabama' => 'athens-state-university-alabama','auburn-university-auburn-alabama' => 'auburn-university-alabama');
if(array_key_exists($_SERVER["REQUEST_URI"], $redirects)) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.website.com/colleges/$redirects[1]");
exit;
}
这种方法很有效,但我担心这是不好的做法。还有另一种方法,您可以使用关联数组。就像这样:
.htaccess
我可能有点错误,但你可以看到它应该做什么。什么是最好的方法来解决这个问题?我不认为我可以有效地使用{{1}}因为每个重定向的独特性。每个URL都没有一致的变量。有什么想法吗?
答案 0 :(得分:2)
我会使用关联数组,但你可以使用换行符来保持清晰,如下所示:
$redirects = array(
'central-alabama-community-college-alexander-city-alabama' => 'central-alabama-community-college-alexander-city',
'athens-state-university-athens-alabama' => 'athens-state-university-alabama',
'auburn-university-auburn-alabama' => 'auburn-university-alabama',
'etc...', 'etc...'
);
另一个替代方法是将其存储在数据库中并以这种方式查找,这样您就不需要维护可能因安全原因而被锁定的PHP文件本身。
答案 1 :(得分:1)
我认为你应该将重定向放在数据库中,
然后使用.htaccess重定向到一个php脚本,该脚本执行301重定向到正确的URL。
答案 2 :(得分:0)
我认为将它放在.htaccess
文件中将是最佳解决方案。它可以很容易地实现。我也觉得这比将所有逻辑放入PHP文件要好得多。
RewriteEngine On
Redirect 301 /old-page.html http://www.mysite.com/new-page.html