设置2000 Http重定向的最佳实践

时间:2012-09-18 05:31:34

标签: php .htaccess seo http-redirect

我有一个旧网站(www.example.com),包含大约2000个文档(PDF,Word doc,Excel)。所有2000个文档(PDF和Word文档)都使用这些现有链接互相引用。

我创建了另一个网站(www.example.net),其中包含不同的文档路径。我想将旧网址映射到新网址,这样我就不会丢失访问次数,因此拥有旧链接旧文件的用户仍会从新网站获取文档。

旧文档路径:http://www.example.com/sites/docs/abc.pdf

新文档路径:http://www.example.net/files/resources/def.pdf

(请注意,域名已更改,文档路径已更改,文档名称本身已更改。文档名称的更改没有模式。)

常见解决方案:

  1. .htaccess重定向,但有2000个文档,所以这是很多工作

  2. 正常重定向.php文件中的硬编码网址,其效果与.htaccess

  3. 相同

    有没有比这些更好的解决方案?

1 个答案:

答案 0 :(得分:5)

如果文档完全唯一,例如:abcd.pdf被重定向到pqrs5000_foo.pdf(即,两者之间根本没有相关性),那么就无法明确地重定向所有2000他们。只需要将它们全部放在htaccess / vhost / server配置文件或其他文件中并使用RewriteMap and the txt map type即可。您需要在vhost或服务器配置中定义映射,但它不能在htaccess文件中使用,但您可以在htaccess文件中使用映射本身。

如果文件名相同,只有路径名不同,则根本不需要2000重定向,只需:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^sites/docs/(.*)$ http://www.example.net/files/resources/$1 [L,R=301]

或者使用mod_alias:

Redirect /sites/docs http://www.example.net/files/resources