Autor | Zpráva | ||
---|---|---|---|
peteo Profil |
#1 · Zasláno: 27. 2. 2015, 09:54:11
dobrý deň, večer, ráno,
potreboval by som poradiť, ako podstrčiť súborom bez prípony súbor s príponou, napr: RewriteRule ^bbb bbb.php RewriteRule ^ccc ccc.php ... ale tak, aby podstrčenie neprebehlo u adresára bbb, ccc ani u súborou s akoukoľvek príponou (bbb.*, ccc.*, ...), proste iba u súborov bez prípony. ďakujem za pomoc, p. |
||
Corwin Profil |
ahoj, je to poměrně jednoduché :
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ $1.php [L] právě 2 řádky s rewriteCond vyjmou z pravidla existující adresáře či existující soubory. PS.: toto "proste iba u súborov bez prípony." moc nechápu... prostě máš soubory s příponou PHP a ty zobrazíš na url /neco/ - bez přípony. |
||
peteo Profil |
#3 · Zasláno: 27. 2. 2015, 10:13:58
Corwin:
môžete mi, prosím, ešte vysvetliť význam prepínačov !-f a !-d v RewriteCond, aby som rozumel tomu, čo vlastne robím? ďakujem za ochotu. p. |
||
Corwin Profil |
už jsem vysvětlil v minulém příspěvku, ale ještě to rozepíšu víc :
!-f = na požadované url není soubor (not file) !-d = na požadované url není adresář (not directory) tedy : při zavolání url : http://www.neco.cz/stranka/
zobrazí se namísto toho soubor http://www.neco.cz/stranka.php
ale pouze za předpokladu, že v rootu neexistuje složka /stanka/ či soubor bez přípony /stranka |
||
peteo Profil |
Corwin:
no a to je práve problém, ja potrebujem, aby práve existujúci súbor bez prípony (doména/aaa) bol nahradený súborom s príponou (doména/aaa.php): RewriteRule ^bbb bbb.php RewriteRule ^ccc ccc.php ... takže teoreticky by stačilo vynechať RewriteCond %{REQUEST_FILENAME} !-f - ale: nebude to presmerovávať i súbory s príponou (bbb.txt, ccc.txt, ...)? p. hm, tak to nefunguje (vypustenie RewriteCond %{REQUEST_FILENAME} !-f). |
||
Corwin Profil |
#6 · Zasláno: 27. 2. 2015, 10:38:45
peteo:
„takže teoreticky by stačilo vynechať RewriteCond %{REQUEST_FILENAME} !-f - ale: nebude to presmerovávať i súbory s príponou (bbb.txt, ccc.txt, ...)?“ nikoli, bude to fungovat pouze u souborů s příponou php, jak je deklarováno v rewriteRule. co přesně dělá tento řádek se poněkud krkolomně vysvětluje, raději ukážu na screenshotu : http://sklad.treba.cz/bez_pripony.jpg toto je soubor bez přípony. cokoli.txt / cokoli.html / cokoli.css jsou příklady, na které se to nevztahuje. |
||
Kajman Profil |
#7 · Zasláno: 27. 2. 2015, 10:48:44
peteo:
Omezte přepsání na taková url, kde se nevyskytuje tečka - tedy není přípona... RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^.]+)$ $1.php [L] |
||
peteo Profil |
Kajman:
jo, to je ono. ďakujem. prajem pekný deň. p. |
||
Keeehi Profil |
#9 · Zasláno: 27. 2. 2015, 12:45:36
peteo:
Mě by zajímalo, proč ty soubory nemají připonu? Postup je většinou obrácený (soubory příponu mají a v url se jí chceme zbavit). Je nějaký důvod, proč nemůžete těm souborům přidat příponu a úplně vynechat to přepisování? |
||
Časová prodleva: 10 let
|
0