Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]RewriteRule - nie wczytuje stylu ?
Forum PHP.pl > Forum > Przedszkole
dk1342
Witam, zacząłem się dzisiaj bawić mod_rewrite i coś mi wyszło:

Kod
RewriteEngine On
RewriteRule ^([^-]+)/(.*)$ podstrona.php?id=$2 [L,NC,NS,QSA]

Czyli niby dziala, gdy wpisuje http://domena.pl/podstrona/1 to wczytuje http://domena.pl/podstrona.php?id=1
no ok tylko czemu mi nie wczytuje stylu ? i innych wczytywanych rzeczy (np. skryptów js.)
Dziwne bo jak wpisze http://domena.pl/podstrona.php?id=1 to styl itd. wczytuje a gdy wpisze http://domena.pl/podstrona/1 już nie

2. Działa to tylko jak wpisze http://domena.pl/podstrona/1 jak wpisze z / na końcu już nie działa czyli jak zrobić żeby działało też z / czyli np.: http://domena.pl/podstrona/1/
Wicepsik
Bo strona myśli że masz plik index w http://domena.pl/podstrona/1/


Przed każdym obrazkiem, stylem, skryptem itd. wpisz /
np.
  1. <link rel="stylesheet" href="index.css" type="text/css" />
  2. Na: \/
  3. <link rel="stylesheet" href="/index.css" type="text/css" />
dk1342
nic to nie dało :/
sannin
Chyba raczej ../ a nie /. Możesz też dać gdzieś zmienną $adres_strony i w niej na http://moja-strona.pl/ i wyświetlać ją przed każdym plikem graficzynym itp.

//edit:
Dlatego ja wole rozwiazanie np. takie podstrona,1.html smile.gif nie trzeba nic kombinowac winksmiley.jpg
pgrzelka
a jak wpiszesz adres stylu bezpośrednio w przeglądarce to się wyświetli czy wywołanie zostanie obsłużone przez podstrona.php ?
dk1342
"Dlatego ja wole rozwiazanie np. takie podstrona,1.html smile.gif nie trzeba nic kombinowac winksmiley.jpg "

a jak takie zrobić ?
cojack
Kod
RewriteEngine On
RewriteBase /
RewriteRule ^([^-]+)/(.*)\.html$ podstrona.php?id=$2 [L,NC,NS,QSA]


W <head> na stronie możesz dodać:
Kod
<base href="http://www.moja-strona.pl/" />


Nie pamiętam dokładnie, ale żeby mógł być na końcu / lub nie zrób tak:

Kod
RewriteRule ^([^-]+)/(.*)\.html/?$ podstrona.php?id=$2 [L,NC,NS,QSA]
dk1342
ok działa dzięki, tylko mam jeszcze jeden problem, chce sobie dodać pare takich regułek w tym celu tworze:

Kod
RewriteEngine On
RewriteBase /
RewriteRule ^([^-]+),(.*)\.html$ podstrona.php?id=$2 [L,NC,NS,QSA]
RewriteRule ^([^-]+),(.*)\.html$ index.php?id=$2 [L,NC,NS,QSA]


i gdy wpisuje http://domena.pl/news,1.html to wczytuje mi podstrona.php?id=1 a powinno wczytać index.php?id=1
cojack
Jak sie dowiesz od czego są poszczegulne flagi, to będziesz wiedział dlaczego nie chce działać.
Wicepsik
Cytat(cojack @ 26.05.2009, 11:08:53 ) *
Jak sie dowiesz od czego są poszczególne flagi, to będziesz wiedział dlaczego nie chce działać.

Ortografia...
dk1342
jakie flagi ?
sannin
Flagi czyli na końcu lini [...], wywal to calkowicie i zmien moze na cos takiego smile.gif

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteRule ^podstrona,([0-9]+)\.html$ podstrona.php?id=$1
  4. RewriteRule ^news,([0-9]+)\.html$ index.php?id=$1

I poczytaj trochę o wyrażeniach regularnych smile.gif
Fifi209
Przykładowo flaga [L] winksmiley.jpg

Co do przykładu

^([a-zA-Z]+)/(.*)$ index.php?id=$2
^([a-zA-Z]+)/(.*)/$ index.php?id=$2
cojack
np: http://www.haxite.org/index.php3?site=arty...view&id=589
poczytaj to, bardzo ciekawy artykuł, tylko imo chłopak przekombinował parę rzeczy, nad wyraz to wszystko na końcu ujął. Ale wiedzę ma. Można się dużo dowiedzieć.

+ http://webhosting.pl/print/Sposob.na.lepsz...yli.mod_rewrite

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