Školení ostrahy pro nejlepší ostrahu v Las Vegas

Jak opravím přesměrování ve Firefoxu, aby vedlo můj web na jinou adresu, ale s lomítkem na konci?

Toto je moje přesměrování dovnitř .htaccess:

RewriteCond %{HTTP_HOST} ^test\.mydomain\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.test\.mydomain\.com$ RewriteRule ^testword$ 'http\:\/\/outsidedomain\.com\/test\.mydomain\.com\/testword\/' [R=301,L] 

V prohlížeči Chrome funguje dobře.

To je to, co se má dělat:

test.mydomain.com/testword by mělo vést k outsidedomain.com/test.mydomain.com/testword/. Místo toho ve Firefoxu vede k outsidedomain.com/test.mydomain.com/testword. Všimněte si nedostatku lomítka.

Na konci to musí mít lomítko, protože jinak by skript z outsidedomain.com nefunguje správně.

AKTUALIZACE: Používám http://nyanit.com zobrazit stránku na mém blogu, takže když uživatel píše mydomain.com/testword vede to k http://nyanit.com/mydomain.com/testword/. Ukázalo se, že je to v pořádku v prohlížeči Chrome, kde je skript „nyanit“ načten pouze jednou, ale ve Firefoxu, který zobrazuje stránku „testword“, se znovu spustí přesměrování, takže se stránka nezobrazí, ale pouze skript se zobrazuje několikrát.

Podívejte se na to zde. Vyzkoušejte Chrome i Firefox, abyste zjistili, co tím myslím.

Toto je klasická chyba, vaše pravidlo odpovídá pouze cestám, které doslova zápas /testword. Pokud chcete přesměrovat vše, co začíná /testword, odstranit $:

RewriteRule ^testword 'http\:\/\/outsidedomain\.com\/test\.mydomain\.com\/testword\/' [R=301,L] 

Pokud se chcete shodovat /testword a /testword/ a nic jiného, ​​přidejte lomítko jako volitelné /?:

RewriteRule ^testword/?$ 'http\:\/\/outsidedomain\.com\/test\.mydomain\.com\/testword\/' [R=301,L] 

Vypadá to tak nyanit.com otevře se http://india.thefalljourney.com/cat/ ve vašem prohlížeči. Možná si prohlížíte stránku uloženou v mezipaměti v prohlížeči Chromium, a proto přesměrování není nekonečné. Problém je:

  • http://india.thefalljourney.com/cat je přesměrován na http://nyanit.com/india.thefalljourney.com/cat/
  • http://india.thefalljourney.com/cat/ je otevřen v <iframe> podle nyanit.com
  • S pravidlem přepsání http://india.thefalljourney.com/cat/ je znovu přepsáno ... nekonečná smyčka.

Návrh: nepoužívejte k tomu přesměrování Apache, ale Javascript. Pokud je zjištěno, že stránka je v rámci, nepřesměrovávejte. Vložte níže uvedený kód JS http://india.thefalljourney.com/cat a odeberte kód přesměrování apache:

<script> if (parent == self) { location.replace('http://nyanit.com/india.thefalljourney.com/cat/'); } </script> 
  • Ano, vaše řešení je správné, ale ve Firefoxu je zjevně problém. Když jsem přesměrován na outsidedomain.com/test.mydomain.com/testword/„Chrome zobrazuje skript vnějšího webu správně nahoře na stránce z mého webu, ale Firefox spustí neomezenou smyčku a načte vnější skripty více než jednou (ve skutečnosti neomezeně). Existuje způsob, jak to opravit? Podívejte se prosím na aktualizaci otázek.
  • @ rlesko Viz aktualizovaná odpověď.
  • Funguje perfektně. Jediným problémem nyní je, že v Chromu není žádný zvuk, ale jsem si jist, že to s přesměrováním nemá nic společného. Vlastně to nevadí, díky za vaši pomoc ...

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?

užitečné informace