htaccess重定向与完整的URL

时间:2016-03-31 08:53:00

标签: php .htaccess redirect

是否可以使用htaccess从一个域重定向到另一个域?

RewriteRule http://www.google.com/old-route http://www.google.com/new-route [R=301,L]
RewriteRule https://www.google.com/old-route https://www.google.com/new-route [R=301,L]

如果没有,您将如何在一个项目上重定向多个域?

3 个答案:

答案 0 :(得分:2)

这可以通过使用rewriteConditions来实现:https://wiki.apache.org/httpd/RewriteCond

有些事情:

RewriteCond %{HTTP_HOST} ^site1
RewriteRule ^old-route$ https://www.site1alt.com/new-route [R=301,L]

答案 1 :(得分:2)

对于一个域使用。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.google\.com/old-route$ [NC]
RewriteRule ^(.*)$ http://www.google.com/new-route [R=301,L]    

为了重定向你可以使用的所有内容。

Redirect 301 / http://www.google.com/new-route

答案 2 :(得分:0)

给定https://www.example.com/foobar和其他答案中使用的单个data.sql只寻找%{HTTP_HOST},而不考虑以下路径。因此,这些答案对我不起作用。也许在Apache版本期间发生了一些变化。对我有用的是将www.example.com%{HTTP_HOST}连接起来进行检查。

%{REQUEST_URI}

看看这个不错的Mod_Rewrite Variables Cheatsheet,以获取许多可用的mod_rewrite变量的概述。