Autor | Zpráva | ||
---|---|---|---|
david Profil |
#1 · Zasláno: 8. 6. 2005, 11:29:28
Zdravím
Mám problém s tímto obsahem souboru .htaccess: RewriteEngine on RewriteCond %{HTTP_HOST} ^* RewriteRule ^/(.*)/(.*)/denik /vypis.php?ss=2&pismeno=$1&denik=$2 [L,QSA] RewriteRule ^/(.*)/(.*)/vypis/ /vypis.php?ss=2&pismeno=$1&denik=$2 [L,R=301,QSA] RewriteCond %{HTTP_HOST} ^/(.*)/[a-zA-Z]*/(.*)/ RewriteRule ^/(.*)/(.*)/(.*)/ /vypis.php?ss=$1&pismeno=$2&denik=$3 [L,QSA] RewriteCond %{HTTP_HOST} ^/(.*)/\d*/(.*)/ RewriteRule ^/(.*)/(.*)/(.*)/ /clanek.php?tit=$3&ss=$2&id_sekce=$1[L,QSA] První podmínka funguje bezvadně. Druhá a třetí se však neprovádí. Rozdíl mezi druhou a třetí je ten že druhou chci uplatňovat jen na URL adresy kde za druhým lomítkem jsou písmena, zatím co u třetí podmínku chci uplatňovat jen na URL adresy kde za druhým lomítkem jsou číslice. Víte někdo kde může být zakopaný pes? díky P.S. neznáte nějaký free hosting kde bych mohl sám nahrávat soubor .htaccess? |
||
Hugo Profil |
#2 · Zasláno: 8. 6. 2005, 11:47:11
No ja si myslim, ze ta prvni podminka by mela byt na poslednim miste, protoze se vztahuje na vsechny adresy.
Na webzdarma .jde htaccess nahravat na server. |
||
Yuhů Profil |
#3 · Zasláno: 8. 6. 2005, 13:01:23
nebo by mohlo stačit z té první sady pravidel umazat ta eLka, to [L] myslím znamená konec zpracování všech pravidel, ale nevím, jestli by to stačilo.
|
||
Kajman Profil * |
#4 · Zasláno: 8. 6. 2005, 15:55:15
HTTP_HOST je holá adresa servu, takže je nesmyl tam dělat pomínky na žádanou cestu.
Takže ty a-z a číslice hodit do RewriteRule a Smazat všechny RewriteCond, protože takhle nedávájí žádý smysl. |
||
david Profil |
#5 · Zasláno: 8. 6. 2005, 19:29:47
Díky za pomoc
Po odladění perfektně funguje toto: RewriteCond %{HTTP_HOST} ^ RewriteRule ^(.*)/([a-zA-Z]*)/(.*)$ /vypis.php?ss=$1&pismeno=$2&denik=$3 [L,QSA] RewriteCond %{HTTP_HOST} ^ RewriteRule ^(.*)/(\d*)/(.*)$ /clanek.php?tit=$3&ss=$2&id_sekce=$1[L,QSA] RewriteCond %{HTTP_HOST} ^ RewriteRule ^/(.*)/(.*)/denik /vypis.php?ss=2&pismeno=$1&denik=$2 [L,QSA] RewriteRule ^/(.*)/(.*)/vypis/ /vypis.php?ss=2&pismeno=$1&denik=$2 [L,R=301,QSA] Jen nevím jak oštřit diakritiku. Mohu mít například URL: www.domena.cz/1/Š/clanek to ovšem nefunguje :( |
||
Mordae Profil |
#6 · Zasláno: 8. 6. 2005, 21:51:11
Místo [a-zA-Z] dát třeba [^0-9].
|
||
Kajman Profil * |
#7 · Zasláno: 9. 6. 2005, 00:03:26
Vyhoď ty podmínky RewriteCond, jsou tam na prd. Ty se používají na jiné podmínky, než na testování adresy požadovaného dokumentu. Jsou tu tedy naprosto zbytečné. To by mě zajímalo, proč to tam každý nesmyslně cpe.
Takhle by to nešlo? RewriteRule ^/(.*)/(.*)/denik /vypis.php?ss=2&pismeno=$1&denik=$2 [L,QSA] RewriteRule ^/(.*)/(.*)/vypis/ /vypis.php?ss=2&pismeno=$1&denik=$2 [L,R=301,QSA] RewriteRule ^(.*)/(\d*)/(.*)$ /clanek.php?tit=$3&ss=$2&id_sekce=$1[L,QSA] RewriteRule ^(.*)/(.*)/(.*)$ /vypis.php?ss=$1&pismeno=$2&denik=$3 [L,QSA] |
||
david Profil |
#8 · Zasláno: 9. 6. 2005, 08:29:34
Reakce na Kajmana:
Řekl bych, že strašně málo lidí ví, že ty podmínky nejsou povinné. Chybí jednoduchá příručka k mod_rewrite. Oficiální dokumentace se těžko stravuje a jakékoli jiné návody co jsem našel jsou strašně primitvní. Pokud by někdo napsal seriál článku na toto téma určitě by tím potěšil hodně webmasterů. |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0