htaccess在重写规则之前重定向?

Jas*_*rod 6 .htaccess

这是我的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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

Jon*_*Lin 9

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

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

## 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>
Run Code Online (Sandbox Code Playgroud)