这是我的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。我该如何解决这个问题?
答案 0 :(得分: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>