如何在Apache重写规则中替换域名?

Seb*_*ian 2 apache .htaccess

我需要在重写规则中将URL domain.com重定向到domain.net.我最初使用重定向,但它丢失了我发送的POST变量.Rewrite是否会将它们带过来,最好的方法是什么?

red*_*red 6

这应该可以解决您的问题:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ http://www.thenewdomain.net/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

  • 当我使用它时,我在重定向的 URL 中看到两个斜杠。就像“...thenewdomain.net//login”。因为 `$1` 是 `/login` 并且新域名末尾也有一个斜杠。我必须使用 `RewriteRule ^/(.*)$ http://www.thenewdomain.net/$1 [R=301,L]` 来排除 `$1` 中的前导斜杠,或使用 `RewriteRule ^(.* )$ http://www.thenewdomain.net$1 [R=301,L]`。第一个看起来更好,但我猜第二个更失败。 (2认同)