Skocz do zawartości

Problem z przekierowaniem


lukasamd

Rekomendowane odpowiedzi

Witam,

mam problem ze zrobieniem przekierowania w mod_rewrite, i nie wiem co robię źle.

Chciałbym przekierowac adresy na stronie tak:

/news.php -> /

/news.php?readmore=X -> /index.php?readmore=X

Zrobiłem więc dwie reguły:

RewriteRule ^news\.php\?readmore=([0-9]+)*$ index.php?readmore=$1 [R=301,L]
RewriteRule ^news.php*$ / [R=301,L]

Niestety pierwsza z nich nie wiedzieć czemu nie działa, i w wypadku adresu z parametrem jesteśmy przekierowani w taki oto sposób:

/news.php?readmore=X -> /?readmore=X

Próbowałem kilku kombinacji, ale ciągle to nie działa. Co zrobiłem źle?

BTW. Czytałem gdzieś, że w wypadku przekierowania lepiej stosować polecenia Redirect i RedirectMatch - czy w moim przypadku warto to zrobić? Zależy mi na stałym przekierowaniu.

Odnośnik do komentarza
Udostępnij na innych stronach

Takie:

RewriteRule ^news\.php\?readmore=([0-9]+)*$ index.php?readmore=$1 [R=301,QSA]

albo takie coś:

RewriteRule ^news\.php\?readmore=([0-9]+)*$ index.php?readmore=$1 [R=301,QSA,L]

niestety nie daje pożądanego efektu. Wrzucenie QSA do drugiej reguły i usunięcie pierwszej również nie pomaga.

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz działa cudnie! Dzięki wielkie.

Mógłbym mi jeszcze wytłumaczyć jak to dokładnie działa? Samo rozwiązanie != nauka ;)

Z tego co wnioskuję:

1 linijka - warunek: istnienie parametru

2 linijka - jeżeli warunek spełniony, wrzuca do index.phpX gdzie X to parametr

3 linijka - jeżeli nie ma parametru, idzie do głównego adresu

Zgadza się?

Odnośnik do komentarza
Udostępnij na innych stronach

Tak zgadza się ;)

RewriteCond %{QUERY_STRING} .+
RewriteRule ^news\.php$ /index.php [QSA,R=301,L]

tu następuje przekierowanie w przypadku parametrów i przy ponownym wywołaniu jest już index.php więc reguła:

RewriteRule ^news.php$ / [R=301,L]

nie ma co robić (i ta pierwsza też).

A gdy nie ma parametrów to pierwsze RewriteRule jest pomijana ze względu na brak spełnionego warunku.

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności