2012-12-28 11 views
6

Questo è il mio .htaccess:htaccess Reindirizza PRIMA di RewriteRule?

## 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> 

Fondamentalmente, ho bisogno di riscrivere 8wayrun.com/stream a twitch.tv/8wayrun ...

E poi ho bisogno di riscrivere 8wayrun.com a 8wayrun.com/calibur ...

Il problema è, la sua riscrittura 8wayrun.com/stream a 8wayrun.com/calibur/stream. Come posso risolvere questo?

+0

Prova a posizionare la bandiera L, dopo i primi due reindirizzamenti. –

+0

Intendi come 'Redirect/stream/http://twitch.tv/8wayrun [L] Redirect/stream http://twitch.tv/8wayrun [L]'? Provato, mi dà errori del server. –

risposta

7

La direttiva Redirect è parte di mod_alias e le direttive Rewrite* fanno parte di mod_rewrite. Quando un URI viene elaborato attraverso la pipeline di mappatura URL/file, entrambi i moduli vengono applicati in modo tale che avere uno davanti all'altro non ha importanza, entrambi verranno applicati alla fine.

È meglio attenersi solo con mod_rewrite e utilizzare il flag L per impedire l'applicazione dei reindirizzamenti extra.

## 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> 
Problemi correlati