Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] Przekierowanie "nieprzyjaznych" linków na linki przyjazne
Forum PHP.pl > Forum > PHP
Dytczak
Witam,

Otóż dzisiaj postanowiłem zmienić na swojej stronie linki "nieprzyjazne" na przyjazne. Niestety tych pierwszych w ogóle nie indeksował google - zresztą co tu się dziwić, skoro podstrony były zakończone rozszerzeniem .jpg, .gif czy .png (tak, to hosting fotek).
Aha, jeszcze dla osób niezorientowanych - budowa tego linku: domena.pl/image.php?img=numer_katalogu/numer_zdjecia.jpg
Przyjazne linki stworzyłem następującą komendą:
  1. RewriteEngine On
  2. RewriteRule ^/?image-([0-9]+)-([0-9]+).html$ image.php?img=$1/$2.jpg [L]

Teraz, kiedy wchodzimy na "przyjazny link", wszystko jest w porządku.
Jednak wpisując stary link (nieprzyjazny winksmiley.jpg ), dalej można go ujrzeć, co w moim przypadku mija się z celem, gdyż chciałbym, aby wszystkie stare linki zostały przekierowane na nowe (przyjazne).
Próbowałem wdrożyć to przekierowanie na dziesiątki sposobów, niestety - bezskutecznie.

Czy jest na forum osoba, która mogłaby mi pomóc?
Pozdrawiam.
lukaszgolder
W stare zawsze można będzie wejść, ale możesz skorzystać z innej flagi, a mianowicie przekierowywać z tego adresu na inny - R zamiast L.
Dytczak
Cytat(lukaszgolder @ 12.01.2010, 20:26:54 ) *
W stare zawsze można będzie wejść, ale możesz skorzystać z innej flagi, a mianowicie przekierowywać z tego adresu na inny - R zamiast L.

Dzięki za odpowiedź.
Nie wiem czemu, ale dziwnym trafem po zamianie flagi z L na R wszystko działa na odwrót tj. przekierowuje przyjazne linki na nieprzyjazne.

Nie ważne, w każdym razie z tym problemem sobie poradziłem poprzez funkcję php - header ().

Jednak teraz pojawiła się kolejna przeszkoda - plik .htaccess czyta tylko pierwszą linijkę kodu, która zamienia podstrony z rozszerzeniem .jpg na .html, dalsze pomija (gif->html, png->html, bmp->html):
  1. RewriteEngine On
  2. RewriteRule ^image-([0-9]+)-([0-9]+).html$ image.php?img=$1/$2.jpg
  3. RewriteRule ^image-([0-9]+)-([0-9]+).html$ image.php?img=$1/$2.png
  4. RewriteRule ^image-([0-9]+)-([0-9]+).html$ image.php?img=$1/$2.gif
  5. RewriteRule ^image-([0-9]+)-([0-9]+).html$ image.php?img=$1/$2.bmp

Dodam, że sprawdzałem sytuację zamieniając rozszerzenie jpg na png itd. i zawsze skrypt wykonuje tylko pierwszą linijkę kodu, niezależnie od rozszerzenia.
W czym tym razem leży problem?
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.