1

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

我创建了另一个站点 ( www.example.net),具有不同的文档路径。我想将旧 URL 映射到新 URL,这样我就不会丢失访问,并且具有旧链接的旧文件的用户仍然可以从新站点获取文档。

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

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

(注意域名变了,文档的路径变了,文档名本身也变了。文档名的变化没有规律。)

常见解决方案:

  1. .htaccess重定向,但有 2000 个文档,所以工作量很大

  2. 在文件中使用硬编码 URL 进行正常重定向.php,其工作方式与.htaccess

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

4

1 回答 1

5

如果文档是完全唯一的,例如:abcd.pdf被重定向到pqrs5000_foo.pdf(即两者之间根本没有相关性),那么就无法明确重定向所有 2000 个文档。这只是您是否要将它们全部放入 htaccess/vhost/server 配置文件或另一个文件并使用 aRewriteMap和 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
于 2012-09-18T05:48:53.683 回答