301从旧站点文件夹重定向到新站点结构

时间:2011-06-04 17:08:08

标签: php http-status-code-301

提前致谢。

我已使用新的文件夹结构重做我的网站

旧网站结构: www.domain.com/folder/file.aspx

新网站结构: www.domain.us/folder/file.php

请注意新TLD。我有大约20个文件夹,我想重定向。是否可以使用一个文件执行此操作,还是必须为从旧站点到新站点的每个单独文件夹执行301操作?处理这个问题的最佳方法是什么?

再次 提前致谢

3 个答案:

答案 0 :(得分:1)

你应该使用mod_rewrite。将它放在FTP的 public_html 文件夹中的 .htaccess 文件中:

RewriteEngine On
RewriteRule ^([^.]+)\.aspx$ $1.php [L]

这应该确保当有人打电话给 Banana.aspx 时,他们会看到 Banana.php

答案 1 :(得分:1)

目录中的.htaccess文件优先于父目录中的任何.htaccess文件。因此,如果您已经在每个子目录中都有.htaccess文件,那么将.htaccess文件放在根目录中是没有意义的。

从要重定向的每个子目录中删除.htaccess文件,并更新根文件夹中的.htaccess文件。您可能需要像这样放置20个重写规则。 请注意,从子目录中删除.htaccecss会删除您[可能]放在该文件夹上的所有限制。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteRule ^folder/file\.aspx$ http://domain.us/folder/file.php [R=301,NC,L]
RewriteRule ^folder2/file\.aspx$ http://domain.us/folder2/file.php [R=301,NC,L]

301表示永久重定向,NC表示无案例,L表示最后一条规则处理匹配

更新要重定向的每个目录中的.htaccess文件

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com
RewriteRule ^(.*)\.aspx$ http://domain.us/folder/$1.php [R=301,NC,L]

#the following might also do; just test it out
#RedirectPermanent (.*)\.aspx$ http://domain.us/folder/$1.php

那么,根据你的情况,你选一个。我选择选项一,以便所有重定向都在一个地方。您始终可以将限制从子目录的.htaccess移动到root的.htaccess。

答案 2 :(得分:0)

如果您使用301 PHP header()重定向,那么我担心它只能一个接一个地完成。

但是如果您使用mod_rewrite为您处理此问题,那么这是您查看的相关来源:http://www.gnc-web-creations.com/301-redirect.htm