2013-02-15 25 views
19

Chciałbym, aby adres URL był przekierowywany na inną stronę w tej samej domenie, ale bez zmiany adresu URL przeglądarki. Dlatego strona www.mydomain.co.uk/tour/ powinna wskazywać na www.mydomain.co.uk/, ale bez zmian..htaccess: Przekierowanie bez zmiany adresu URL

Mam na sobie wiele podobnych pytań na Stackoverflow, ale wszystkie rozwiązania wydają się zmieniać adres URL dla mnie.

KOD:

RewriteEngine On 
Options +FollowSymLinks 
RewriteCond %{REQUEST_URI} ^/tour 
RewriteRule ^(.*)$ http://www.mydomain.co.uk/ [L] 
+1

Spróbuj usunąć domenę. Spróbuj także użyć '[P]' –

+0

Niesamowite dodanie [P] do poniższej odpowiedzi: –

Odpowiedz

18

Ponieważ podać pełny adres URL w regule przepisać to jest automatycznie traktowany jako przekierowania. Wymień pełny adres URL tylko z kreską i to powinno działać, czyli:

RewriteCond %{REQUEST_URI} ^/tour 
RewriteRule ^(.*)$/[P] 

Można nawet skrócić go do:

RewriteEngine on 
RewriteRule ^/?tour.*/[P] 
+0

Powinieneś poinformować o ryzyku związanym z włączonym mod_proxy, tak jak Apache działa tutaj http://httpd.apache.org/docs/current/ mod/mod_proxy.html – user2602152

-4

Spróbuj po prostu zmienić [L] [P] i ja załóżmy, że to zadziała.

+8

Czy to nie jest to, co już przyjęto w odpowiedzi na pytanie? –

1

1- Użyj [P] zamiast [L] 2- Użyj $ s na końcu drugiego wiersza, aby zestaw adresów URL przekierował i usunął/również na końcu. kod będzie wyglądać następująco:

RewriteCond %{REQUEST_URI} ^/tour 
RewriteRule ^(.*)$ /$1 [P] 

który traktuje o więcej niż strony indeksu objazdu folderu.

+0

To jest dokładnie to samo, co [Odpowiedź Michała M.] (http://stackoverflow.com/questions/14895980/htaccess-redirect-without-changing-url/14896042#14896042) ... –

+0

Proszę ponownie sprawdzić, znak 1 $ jest tam! –

+0

Ach, mój błąd. Nie zauważyłem zmiany. Aby upewnić się, że nikt inny nie popełni tego samego błędu, polecam zredagowanie Twojej odpowiedzi, aby wymienić obecną odpowiedź Michała i dlaczego Twoja jest inna –

Powiązane problemy