Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite] Przekierowanie ze starego adresu
Forum PHP.pl > Forum > Serwery WWW
snapshot
Niby proste, ale nie działa. Miałem adresy z końcówką: viewtopic.php?id=123. Chcę to przekierować na: t123.html
Myślałem, że zadziała takie coś:
Kod
RewriteRule ^viewtopic.php?id=([0-9]+)$ t$1.html [R=301,L]
RewriteRule ^t([0-9]+).html$ viewtopic.php?id=$1

Ale najwyrażniej się przeliczyłem. Nie działa mi automatyczne przekierowanie 301 starego adresu na nowy. Jak podam ręcznie t123.html wszystko śmiga jak należy.
kwiateusz
o ile mi wiadomo to . to znak specjalny wiec jak juz to

Kod
RewriteRule ^viewtopic\.php?id=([0-9]+)$ t$1.html [R=301,L]
RewriteRule ^t([0-9]+)\.html$ viewtopic.php?id=$1
snapshot
Niby się podaje, ale działa dobrze i bez "/". W każdym razie nie pomogło.

Znalazłem rozwiązanie:

Kod
#RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
#RewriteRule ^(.*)$ t%1\.html? [R=301]

RewriteRule ^t([0-9]+)\.html$ viewtopic.php?id=$1 [L]


Tylko jest mały problem po przekierowaniu na nowy adres pojawia się strona z tekstem:

Moved Permanently The document has moved here.

Trochę dziwne, bo wiele razy korzystałem z 301 i nigdy nie miałem czegoś takiego.



Chyba wiem. O co chodzi. Zapętla się... Jakiś pomysł, aby tak się nie działo?

nie życzę nikomu szukania odpowiedzi na to w przyszłości, więc podaję odpowiedź: http://www.webmasterworld.com/forum92/6079.htm
darknez
Mam ten sam problem przy przekierowaniu 301 w pliku .htaccess, pojawia się:

Moved Permanently

The document has moved here.

snapshot mógłbyś powiedzieć co trzeba zrobić, bo nie rozumiem tego co podałeś w linku.
Z góry dzięki.
snapshot
U mnie wygląda to teraz tak:
Kod
#/viewtopic.php?id=123&p=123 => t123-123.html
RewriteRule ^t([0-9]+)-([0-9]+)\.html$ /viewtopic.php?id=$1&p=$2 [L]
RewriteCond %{THE_REQUEST} /viewtopic\.php\?id=([0-9]+)&p=([0-9]+)\ HTTP/
  RewriteRule ^viewtopic\.php$ t%1-%2.html? [R=301,L]
RewriteCond %{THE_REQUEST} /t([0-9]+)-([0-9]+)\.html(.*)\ HTTP/
  RewriteRule ^t([0-9]+)-([0-9]+)\.html(.*)$ t%1-%2.html? [R=301,L]
erix
A nie masz przypadkiem zapętlonego przekierowania?
darknez
Erix, nie wiem, nie znam się na tym.
snapshot, mam wkleić ten sam kod do htaccess?

Hm i stronę mam w html.

Kod .htaccess:
Kod
RewriteEngine on
RewriteRule ^.*$ http://nowa-domena.pl/? [R=301,L]

i wyskakuje Moved Permanently The document has moved here.
Jak dokładnie zmienić żeby działalo?
snapshot
Zależy co chcesz osiągnąć.
darknez
Strona regionalna dostała filtr na wszystkie frazy i wykupiłem domenę pl i chcę przekierować regionalną na nową domenę pl.
Wszystkie podstrony chcę przekierować.
I niby tamten kod w .htaccess powinien działać, a nie działa, bo pojawia się ten komunikat co Ty miałeś kiedyś.
Dlatego proszę o pomoc..
snapshot
Spróbuj
Kod
RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L]
darknez
Cytat(snapshot @ 31.12.2011, 17:18:13 ) *
Spróbuj
Kod
RewriteRule ^(.*)$ http://domena.pl/$1 [R=301,L]

Ten sam komunikat...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.