我有一个旧网站(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
(请注意,域名已更改,文档路径已更改,文档名称本身已更改。文档名称的更改没有模式。)
常见解决方案:
.htaccess
重定向,但有2000个文档,所以这是很多工作
正常重定向.php
文件中的硬编码网址,其效果与.htaccess
有没有比这些更好的解决方案?
答案 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