Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mod_rewrite][PHP] mod_rewrite i nieprawidłowe wartości $zmiennych
Forum PHP.pl > Forum > Przedszkole
foxy
  1. Options FollowSymLinks
  2. RewriteEngine On
  3.  
  4. RewriteRule ^([a-zA-Z0-9\-\_\.]+)$ read.php?desc=$1 [L]
  5. RewriteRule ^([a-zA-Z0-9\-\_\.]+)/([a-zA-Z0-9]+)$ read.php?desc=$1&sub=$2 [L]


Po przejściu przez .htaccess $_GET['desc'] ma wartość 'read.php' ohmy.gif, a $_GET['sub'] zawsze jest puste ohmy.gif. Co jest nie tak?
AdIoS_Neo
Witam,
a jakie linki wpisujesz w przeglądarce ?
foxy
Ma być tak:

(1)
  1. /nice-title
  2. lub
  3. /nice-title/nice-anchor


zamiast:

(2)
  1. /read.php?title=nice-title
  2. lub
  3. /read.php?title=nice-title&sub=nice-anchor


(1) daje efekt jak w opisie na początku, (2) - wiadomo - działa jak powinno.
AdIoS_Neo
Kod
Options FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-_]+)/([a-zA-Z0-9-_]+)/?$ read.php?title=$1&sub=$2 [L]
RewriteRule ^([a-zA-Z0-9-_]+)/?$ read.php?title=$1 [L]

sprawdź to
foxy
Teraz działa. Problem jest ze znakami specjalnymi, np. kropką "\.". Taki zapis powoduje, że zamiast parametru , dostaję nazwę skryptu. A co jeśli w parametrze będzie wymagana kropka, np. "/nice.title"? To jedno, a drugie: jak działa końcówka "/?"?
AdIoS_Neo
/? oznacza, że na końcu adresu może wystąpić znak / czyli możesz podać linki:
1) www.mojastrona.pl/loooooool
2) www.mojastrona.pl/loooooool/
a z tą kropką to zależy dużo serwisów nie stosuje takiego przepisywania, gdy wejdziesz chodź by na onet.pl w jakiś artykuł zobaczysz, że w adresie stosują przecinki.
foxy
Dzięki yahoo.gif
foxy
Jeszcze jedno pytanie: chcę w przypadku żądania niezgodnego z formatem (zob. wyż.) lub żądania istniejącego zasobu, wyświetlić 404. Przed regułami dodałem:

  1. #RewriteCond %{REQUEST_URI} /+(includes|files)(/?|/[^/]*)$ [NC]
  2. #RewriteCond %{REQUEST_URI} (/|\.php|\.html?|\.feed|\.pdf|\.raw|/[^.]*)$ [NC]
  3. RewriteCond %{REQUEST_FILENAME} !-d [NC]
  4. RewriteCond %{REQUEST_FILENAME} !-f [NC]
  5. RewriteRule .* - [R=404,L]


Nieprawidłowe. Jak można to skonfigurować?
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.