6

这是我的 htaccess:

## Rewrites
<IfModule mod_rewrite.c>
    RewriteEngine On

    Redirect /stream/ http://twitch.tv/8wayrun
    Redirect /stream http://twitch.tv/8wayrun

    RewriteCond %{HTTP_HOST} ^(www\.)?8wayrun\.com$
    RewriteRule ^(.*)$ http://8wayrun.com/calibur/$1 [R=302,L]
</IfModule>

基本上,我需要将 8wayrun.com/stream 重写为 twitch.tv/8wayrun ...

然后我需要它将 8wayrun.com 重写为 8wayrun.com/calibur ...

问题是,它将 8wayrun.com/stream 重写为 8wayrun.com/calibur/stream。我该如何解决?

4

1 回答 1

9

Redirect指令是 mod_alias 的一部分,Rewrite*指令是 mod_rewrite 的一部分。当通过 URL/文件映射管道处理 URI 时,两个模块都会被应用,因此将一个放在另一个前面并不重要,最终都会应用两个模块。

您最好只坚持使用 mod_rewrite 并使用该L标志来防止应用额外的重定向。

## Rewrites
<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^/?stream/? http://twitch.tv/8wayrun [R=302,L]

    RewriteCond %{HTTP_HOST} ^(www\.)?8wayrun\.com$
    RewriteRule ^(.*)$ http://8wayrun.com/calibur/$1 [R=302,L]
</IfModule>
于 2012-12-28T19:51:08.033 回答