.htaccess在三台服务器之间重写

时间:2011-07-11 21:57:46

标签: apache .htaccess mod-rewrite rewrite

我想将同一个htaccess文件复制到三个不同的服务器上。但是,每次我这样做时,我都不想更新内容。如何“动态”检测域名?

例如,我有以下内容:

Redirect 301 /test/directory/page.php http://examplesite.com/original/location.php

这对其他两个域无效,因为很明显,它们有不同的网址。

我应该像这样修改:

RewriteRule ^/test/directory/page.php /original/location.php [R=301,L]

或者有更好的方法我不必指定域名吗?

1 个答案:

答案 0 :(得分:0)

是的,这会有效(只做一个小改动 - 见注释):

RewriteRule ^test/directory/page.php /original/location.php [R=301,L]

您也可以使用它(如果您需要将协议从当前HTTP或HTTPS更改为特定的协议):

RewriteRule ^test/directory/page\.php$ http://%{HTTP_HOST}/original/location.php [R=301,L]

备注:

  1. %{HTTP_HOST} =当前域名。因此,如果访问http://examplesite.com/test/directory/page.php,则%{HTTP_HOST}examplesite.com作为其值。

  2. /之后无需导出斜杠^(除非规则将放在配置文件中,而不是.htaccess)。例如:访问http://examplesite.com/test/directory/page.php时,RewriteRule将与test/directory/page.php一起使用。