Vij*_*har 1 php .htaccess seo http-redirect
我有一个旧网站(www.example.com),大约有2000个文件(PDF,Word doc,Excel).所有2000个文档(PDF和Word doc)都使用这些现有链接相互引用.
我创建了另一个site(www.example.net),具有不同的文档路径.我想将旧的URL映射到新的URL,这样我就不会丢失访问次数,因此拥有旧链接的旧文件的用户仍将从新站点获取文档.
旧文档路径: http://www.example.com/sites/docs/abc.pdf
新文档路径: http://www.example.net/files/resources/def.pdf
(请注意,域名已更改,文档路径已更改,文档名称本身已更改.文档名称的更改没有模式.)
常见解决方案
.htaccess 重定向,但有2000个文档,所以这是很多工作
正常重定向.php文件中的硬编码URL ,其工作方式与.htaccess
有没有比这些更好的解决方案?
如果文档是完全唯一的,如:abcd.pdf被重定向到pqrs5000_foo.pdf(即两者之间根本没有相关性),那么就无法明确地重定向所有2000个文档.这只是一个问题,你是想将它们全部放在htaccess/vhost/server配置文件或另一个文件中,并使用RewriteMap和txt映射类型.您需要在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]
Run Code Online (Sandbox Code Playgroud)
或者使用mod_alias:
Redirect /sites/docs http://www.example.net/files/resources
Run Code Online (Sandbox Code Playgroud)