【发布时间】:2011-10-29 03:14:38
【问题描述】:
我需要在重写规则中将 URL domain.com 重定向到 domain.net。我最初使用重定向,但它丢失了我发送的 POST 变量。重写是否会延续它们?最好的方法是什么?
【问题讨论】:
-
我不认为 rewrite mod 能够做到这一点!
我需要在重写规则中将 URL domain.com 重定向到 domain.net。我最初使用重定向,但它丢失了我发送的 POST 变量。重写是否会延续它们?最好的方法是什么?
【问题讨论】:
这应该可以解决您的问题:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^domain.com$
RewriteRule ^(.*)$ http://www.thenewdomain.net/$1 [R=301,L]
【讨论】:
...thenewdomain.net//login。因为$1 是/login 并且新域的末尾也有一个斜线。我必须使用RewriteRule ^/(.*)$ http://www.thenewdomain.net/$1 [R=301,L] 来排除$1 或RewriteRule ^(.*)$ http://www.thenewdomain.net$1 [R=301,L] 中的前导斜杠。第一个看起来更好,但我猜第二个更好。
RewriteCond %{HTTP_HOST} ^www.domain.com$[OR]。需要加空格:RewriteCond %{HTTP_HOST} ^www.domain.com$ [OR]
mod_rewrite 示例中使用[R=301],因为如果有人只是复制并执行您的代码一旦忘记更改http://www.thenewdomain.net/,它将被缓存在他们的浏览器中并且没有简单的方法他修复此问题,直到使用某些工具重置完整的浏览器缓存。所以我建议将其更改为[R=302],以防止提问者进一步调试麻烦。