Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mod_rewrite] Negacja w wyrazeniu regularnym
f4ngorn
post 11.12.2008, 00:03:52
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 7.08.2005

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


Witam, mam taki problem. Moj skrypt korzysta z linkow w formacie index.php?page=zmienna1 oraz index.php?page=idz&addr=cos

Podstrony "statyczne" przepisuje

Kod
RewriteRule ^kontakt.html$ index.php?page=kontakt
RewriteRule ^sprawdz.html$ index.php?page=sprawdz
RewriteRule ^dodaj.html$ index.php?page=dodaj


oraz drugi link
Kod
RewriteRule ^idz/([^-]*)$ index.php?page=idz&addr=$1


Efekt: domena.pl/kontakt.html / sprawdz.html / dodaj.html oraz z drugiego domena.pl/idz/costam

Chce, aby zamiast domena.pl/idz/costam bylo domena.pl/costam . Wpadlem na pomysl, zeby kierowac na ?page=idz&addr=$1 wszystko, co nie ma w sobie .html, jednak niewiem jak sie za to wziasc. Nienzam wyrazen regularnych.

Prosze o pomoc
Go to the top of the page
+Quote Post
erix
post 11.12.2008, 18:47:45
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A słyszałeś o modyfikatorze [L]? Lektura dokumentacji się kłania.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
f4ngorn
post 11.12.2008, 19:55:55
Post #3





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 7.08.2005

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


Modyfikator [L] oznacza, ze nie ma on wykonywac kolejnych regul... Ale to niewiele ma do mojego problemu. Probowalem podstawic ^([^-]*)!(\.html)$ ale dziala... Musze napisac regule "jezeli nie zawiera na koncu html -> index.php?page=idz&addr=$1". Tylko o to prosze.
Go to the top of the page
+Quote Post
erix
post 11.12.2008, 21:04:20
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale jak dodasz do każdej:
Kod
RewriteRule ^kontakt.html$ index.php?page=kontakt
RewriteRule ^sprawdz.html$ index.php?page=sprawdz
RewriteRule ^dodaj.html$ index.php?page=dodaj

Ten modyfikator, to nie będziesz musiał kombinować z negacją...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
f4ngorn
post 11.12.2008, 21:34:34
Post #5





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 7.08.2005

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


Dodalem flagi [R], zeby sprawdzic dokad kieruje to wyrazenie.

Kod
RewriteRule ^kontakt.html$ index.php?page=kontakt [L,R]
RewriteRule ^sprawdz.html$ index.php?page=sprawdz [L,R]
RewriteRule ^dodaj.html$ index.php?page=dodaj [L,R]
RewriteRule ^(.+)$ index.php?page=idz&addr=$1 [L,R]


Przy takim zestawieniu nic nie dziala... Wszelkie requesty sa kierowane na http://www.ciachnij.pl/index.php?page=idz&addr=index.php

Moze niedokladnie opisalem problem - chce zamiast

Kod
RewriteRule ^idz/(.+)$ index.php?page=idz&addr=$1

ktore kieruje na ciachnij.pl/idz/tutaj_podstawia

miec

ciachnij.pl/tutaj_podstawia, jednoczesnie zachowujac ciachnij.pl/ dla samego index.php oraz pozostale warunki (tj. kontakt.html, sprawdz.html i dodaj.html).

Ten post edytował f4ngorn 11.12.2008, 21:36:40
Go to the top of the page
+Quote Post
erix
post 12.12.2008, 13:42:45
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wciśnij ostatnią regułkę na sam początek.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
f4ngorn
post 19.12.2008, 11:58:23
Post #7





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 7.08.2005

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


Kod
Options FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^ciachnij.pl
RewriteRule ^(.*)$ http://www.ciachnij.pl/$1 [R=301,L]

RewriteRule ^(.+)$ index.php?page=idz&addr=$1 [L,R]
RewriteRule ^kontakt.html$ index.php?page=kontakt [L,R]
RewriteRule ^sprawdz.html$ index.php?page=sprawdz [L,R]
RewriteRule ^dodaj.html$ index.php?page=dodaj [L,R]

order allow,deny
deny from 77.254.143.196
allow from all


Przy http://www.ciachnij.pl/interia przekierowuje na http://www.ciachnij.pl/index.php?page=idz&addr=index.php

Podaje rozwiazanie problemu, gdyby ktos taki napotkal...

Tak wyglada moj kod .htaccess
  1. <?php
  2. Options FollowSymLinks
  3. RewriteEngine On
  4. RewriteBase /
  5.  
  6. RewriteCond %{HTTP_HOST} ^ciachnij.pl
  7. RewriteRule ^(.*)$ <a href=&#092;"http://www.ciachnij.pl/$1\" target=\"_blank\">http://www.ciachnij.pl/$1</a> [R=301,L]
  8.  
  9. #RewriteRule !.(js|ico|gif|jpg|png|css)$ - [L]
  10.  
  11.  
  12. RewriteRule ^kontakt.html$ index.php?page=kontakt
  13. RewriteRule ^sprawdz.html$ index.php?page=sprawdz
  14. RewriteRule ^dodaj.html$ index.php?page=dodaj
  15. RewriteRule ^ostronie.html$ index.php?page=ostronie
  16. RewriteRule ^robots.txt$ robots.txt
  17.  
  18. RewriteCond %{REQUEST_FILENAME} !-f
  19. RewriteCond %{REQUEST_FILENAME} !-d
  20. RewriteRule ^(.*)$ /index.php?page=idz&addr=$1
  21.  
  22.  
  23. order allow,deny
  24. deny from 77.254.143.196
  25. allow from all
  26. ?>
Go to the top of the page
+Quote Post
erix
post 19.12.2008, 16:03:48
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
RewriteRule ^kontakt.html$ index.php?page=kontakt
RewriteRule ^sprawdz.html$ index.php?page=sprawdz
RewriteRule ^dodaj.html$ index.php?page=dodaj
RewriteRule ^ostronie.html$ index.php?page=ostronie
RewriteRule ^robots.txt$ robots.txt

A gdzie [L] zjadłeś?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 21:26