Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] modrewrite www.adres.pl/nazwafirmy
Forum PHP.pl > Forum > Przedszkole
lewy87r
Witam,

wlasnie chodzi o to ze musze zrobic cos takiego i wedlog mnie to sie nie da ;] lecz pewnie jest jakis sposob by to ominąć jakims trickiem

zeby dzialalo cos takiego:



RewriteRule ^(.*)$ index.php?com=firma-konkret&id=$1

(gdzie id to nazwa firmy)

bo w tym momencie kazdy adres jest przypisywany do
tej reguly i zastosowanie czegos takiego:

RewriteRule ^podstrona-(.*).html$ index.php?page=$1

i tak przypisuje do tego pierwszego ogolnie kazdy adres jest przypisywany do pierwszego,

kurde i sie zastanawiam czy mozna jakis wyjatek zrobic zeby do pierwszej reguly przypisywalo tylko adresy bez koncowki .html

rozwiazaniem jest dodanie do pierwszej reguly .htm ;] lecz klient sie uparl ze musi byc wizytowka firmy jako www.adres.pl/nazwafirmy
bez przedrostkow i przyrostkow zadnych wiec ogolnie to lipa ;] i prosze o pomoc albo napisanie czy sie da cos takiego czy nie ;]
dodam ze to dosc spory serwis i ma sporo podstron
Kicok
Przenieś
Kod
RewriteRule ^podstrona-(.*).html$ index.php?page=$1

NAD:
Kod
RewriteRule ^(.*)$ index.php?com=firma-konkret&id=$1


i poczytaj o fladze L
http://httpd.apache.org/docs/1.3/mod/mod_r...e.html#redirect
lewy87r
Nic nie pomogło o flagach wlasnie poczytalem i pokombinowalem i nic... nie wychodzi dodawalem juz na slepo te [L] i nie ma opcji zeby dzialalo... jak dodam tylko przedrostek jakis to juz jest ok. wiec konstrukcja jest dobra ;]

kurde.... a wlasnie jak mam

  1. <?php
  2. RewriteEngine On 
  3.  
  4. RewriteRule ^index.html$ index.php
  5.  
  6.  
  7. RewriteRule ^podstrona-(.*).html$ index.php?page=$1
  8.  
  9. RewriteRule ^(.*)$ index.php?com=firma-konkret&id=$1 [L]
  10. ?>


to mi nawet strona typu www.adres.pl/nazwafirmy nie dziala bo pokazuje pusta wizytowke ;] czyli jak by nie wczytywalo zmiennej id kurde..
czasami jest tak ze bez powodu mi wywali cala strone(style i niektore obrazki wywala) to musze tylko .htaccess zresetowac i mi spowrotem dziala,

w momencie jak dodam jakis przedrostek czy przyrostek do reguly z wizyttowka to dziala idealnie :/

no nie mam pojecia co poczac teraz....
(moze o flgach za duzo nie zrozumialem bo jestem zielony z angielskiego)
ale L to jest ze regula bedzie czytana na koncu czyli kolejne linijki sie nie wykjonuja...

ale dalej nie wiem jak zrobic czeby to dzialalo bo ustawienie [L] nic nie daje...
SirZooro
Po pierwsze przenieś drugą regułę na początek, jak sugerował mój poprzednik. Po drugie zaś przed pierwszą regułę zmień tak:
Kod
RewriteCond %{REQUEST_URI} !^/index.php [NC]
RewriteRule ^(.*)$ index.php?com=firma-konkret&id=$1 [L]

Ten dodatkowy warunek zapewnia że reguła nie uruchomi się dla index.php - zabezpieczy to przed problemem który masz.
Flaga [L] na końcu powoduje że reguły poniżej nie będą wykonywane, ale to nie przerywa pracy mod_rewrite - zacznie od jeszcze raz od początku analizować reguły i będzie to robił aż do momentu gdy nie uda mu się dopasować już żadnej reguły. Niestety na razie nie znalazłem jeszcze metody na przerwanie tego, ale na szczęście zazwyczaj się da zrobić jakieś obejście.
lewy87r
spoko jakies gowienko mi sie trafilo i nie moglem tego zrobic :/ jakos mi w zaden sposob nie wychodzilo :/
tylko wyszlo jak zrobilem oddzielne ograniczenie dla wizytowek czyli cos takiego:

RewriteRule ^([a-zA-Z0-9_]*)$ index.php?com=firma-konkret&id=$1 [L]

co prawda i to lepiej bo IE i Firefox inaczej interpretuja niektore url-e gdzie rozne znaki sa roznie odczytywane i bledy wyskakuja ;]
wiec ograniczenie tylko do liter i cyfr a spacje w nazwie beda zastepowane _ i dziala ;] tak wiec dziekuje wszystkim za odpowiedzi...

pozdrawiam
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.