Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite][PHP] mod_rewrite i nieprawidłowe wartości $zmiennych
-foxy-
post
Post #1





Goście







  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' (IMG:style_emoticons/default/ohmy.gif) , a $_GET['sub'] zawsze jest puste (IMG:style_emoticons/default/ohmy.gif) . Co jest nie tak?
Go to the top of the page
+Quote Post
AdIoS_Neo
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


Witam,
a jakie linki wpisujesz w przeglądarce ?
Go to the top of the page
+Quote Post
-foxy-
post
Post #3





Goście







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.
Go to the top of the page
+Quote Post
AdIoS_Neo
post
Post #4





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
-foxy-
post
Post #5





Goście







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 "/?"?
Go to the top of the page
+Quote Post
AdIoS_Neo
post
Post #6





Grupa: Zarejestrowani
Postów: 159
Pomógł: 43
Dołączył: 8.03.2009

Ostrzeżenie: (0%)
-----


/? 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.
Go to the top of the page
+Quote Post
-foxy-
post
Post #7





Goście







Dzięki (IMG:style_emoticons/default/yahoo.gif)
Go to the top of the page
+Quote Post
-foxy-
post
Post #8





Goście







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ć?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 12:19