有任何建议,我有大约300页需要设置301重定向到我的新域名。任何人都能阐明如何以编程方式做到这一点,我真的希望它不必单独完成!!
我正在运行一个Apache服务器在CentOS 5.4
旧页
http://example.com/examplePage.php?id=289new page ->
http://gallery.example.com/en-US/theme/6这个问题是旧域与新域无论如何都不相关。2个完全不同ID值的独立数据库。这是对id值不同步的站点的彻底检修。我认为这就是我的问题变成了手动输入每个单独的重定向,我需要保持SEO值完整。
如果有人能建议如何在PHP中编程,那就太好了,否则我担心我会在我的。htaccess文件中有数百个条目。
尝试使用url重写将所有页面重定向到相同的301页面。Url重写在每个服务器上的工作方式不同。对于Apache,你有mod_rewrite
从你的问题中很难给你一个具体的答案,但我以前遇到过几十次你的情况,以下是我的建议:
正如Dani所说,如果可以的话,使用Apache mod_rewrite来处理重定向,将它们放在站点根目录下的。htaccess文件中。
如果你只是改变域名,但所有的页面url保持不变,那么你只需要在你的。htaccess文件中的一行:
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
但是,如果你的页面url正在改变,你可以使用Apache单独重定向它们。Apache中典型的301重定向是这样的:
redirect 301 /oldpage.htm /newpage.htm
如果由于某些原因无法使用Apache来处理重定向,可以使用PHP来处理,如下所示:
$redirects = array(
'/old-page' => '/new-page',
'/old-page-two.htm' => '/new-page-two'
);
if (array_key_exists($_SERVER["REQUEST_URI"],$redirects)) {
header("Status: 301 Moved Permanently");
header("Location:http://".$_SERVER["HTTP_HOST"].$redirects[$_SERVER["REQUEST_URI"]]);
exit;
}
减少创建重定向的努力的唯一方法是,如果在你试图重定向的url中有共同的模式,例如
/product/123 /product-123.html
/product/456 /product-456.html
/product/789 /product-789.html
如果是这种情况,那么您可以使用正则表达式来匹配这样的模式:
RewriteRule ^product/([0-9]*)$ /product-$1.html [R=301,L]
如果你告诉我们更多关于你的情况,并给出一些示例url,我们可能能够进一步帮助。