2012-12-28 17 views
6

To jest mój .htaccess:Przekierowanie htaccess PRZED przepisaniem gry?

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

Zasadniczo muszę przepisać 8wayrun.com/stream do twitch.tv/8wayrun ...

A potem muszę go przepisać do 8wayrun.com 8wayrun.com/calibur ...

Problem polega na tym, że przepisano 8wayrun.com/stream na 8wayrun.com/calibur/stream. Jak to naprawić?

+0

Spróbuj umieścić flagę L po pierwszych dwóch przekierowaniach. –

+0

Masz na myśli, jak 'Redirect/stream/http://twitch.tv/8wayrun [L] Przekierowanie/stream http://twitch.tv/8wayrun [L]'? Próbowałem, daje mi błędy serwera. –

Odpowiedz

7

Dyrektywa Redirect jest częścią mod_alias, a dyrektywy Rewrite* są częścią mod_rewrite. Gdy identyfikator URI zostanie przetworzony za pomocą potoku mapowania URL/plik, oba moduły zostaną zastosowane, tak aby jeden przed drugim nie miał znaczenia, oba zostaną zastosowane na końcu.

Lepiej trzymać się tylko mod_rewrite i używać flagi L, aby zapobiec dodatkowemu przekierowaniom.

## 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> 
Powiązane problemy