Autor Zpráva
WendaDostalek
Profil *
Dobrý den, potřeboval bych poradit co se týče regulárních výrazů a mod_rewrite...

Mam stránky v adrese localhost/www/nove/stranky/nova-stranka.php

index.php i .htaccess jsou v adresáři nove.

Aktuální stránku předávám v parametru například index.php?page=nova-stranka
Chtěl bych ale, aby se zobrazovala jako www.stranky.cz/nova-stranka

.htaccess jsem vytvořil takto:

rewriteEngine on
RewriteBase /www/

RewriteRule (^.*$) index.php?=$1

Ale to mi nefunguje. Dokázal by mi tu někdo poradit, prosím? Děkuju
Kajman_
Profil *
Asi se to zacyklí, zkuste třeba přepisovat jen to, kde není v názvu tečka (index.php, obrázky, atp.).

RewriteEngine on
RewriteBase /www/nove/
RewriteRule ^([^.]+)$ index.php?=$1
WendaDostalek
Profil *
Děkuju. Takto to funguje. Snažím se poprat s reg. výrazy, jen nevím, proč tento zápis

RewriteRule ^(.*)$ index.php?=$1

přidá do proměnné "index.php" a ne to, co bych chtěl já, např. nova-stranka
Kajman_
Profil *
Protože to proběhne desetkrát... poprvé se tam dá nova-stranka, pak devětkrát index.php.

Pokud se něco podstrčí, prochází se pravidla znovu pro novou podobu. No, a problém je v tom, že tomu pravidlu vyhovuje index.php a bude se to přepisovat do té doby, dokud nevyprší vnitřní limit takovýchto přepsání.
WendaDostalek
Profil *
Mohu ještě jeden dotaz? Kajman_ mi pomohl a rewrite_rule funguje tak, jak má. Pokud ale uživatel zadá neexistující adresu, např. adresa.com/nesmysl, tak index.php doběhne až po řádek, kde by se měl includovat inc/nesmysl.php, ten nenajde a vyhodí hlášku:

Warning: main(./inc/nesmysl.php): failed to open stream: No such file or directory in D:\www\index.php on line 159

Warning: main(): Failed opening './inc/nesmysl.php' for inclusion (include_path='.;c:\php\includes') in D:\www\index.php on line 159

Když jsem zkusil tenhle problém vyřešit ErrorDocument 404 /chybovka.html, ale on index.php existuje, takže to nic neřeší...
tiso
Profil
Musíš si ošetriť vkladanie súborov - keď súbor neexistuje vložiť úvod alebo tak nejak...
Toto téma je uzamčeno. Odpověď nelze zaslat.

0