Autor | Zpráva | ||
---|---|---|---|
sparky Profil * |
#1 · Zasláno: 10. 9. 2013, 20:59:41
Zdravím, chtěl bych z url
http://domena/index.php?content=foto&galerie=nejaka_galerie udělat http://domena/galerie/nejaka_galerie zkouším to přes htaccess a bohužel se nedaří RewriteEngine On RewriteBase /ryzab_new RewriteCond %{QUERY_STRING} ^content=([^&]+)$ RewriteRule ^index\.php$ %1.html? [R=301,L,NE] RewriteRule ^([^/]+)\.html index.php?rw=1&content=$1 [L,QSA] RewriteRule ^galerie/([^/]*)\.html$ /index.php?content=foto&galerie=$1 [L,QSA] |
||
Taps Profil |
#2 · Zasláno: 10. 9. 2013, 21:13:27
sparky:
zkus níže uvedené RewriteEngine On #pokud je to zanorene v nejakem adresari, uvedte ho za / RewriteBase /ryzab_new #ignoruj vsechny opravdove adresare RewriteCond %{REQUEST_FILENAME} !-d #ignoruj vsechy opravdove soubory (php skripty, obrazky, styly) RewriteCond %{REQUEST_FILENAME} !-f #vsechno ostatni necha vygenerovat index.php (ten se musi rozhodnout podle promenne url, zda stranka existuje a jaky ma mit obsah) RewriteRule ^galerie/(.*)$ /index.php?content=foto&galerie=$1 [L,QSA] RewriteRule ^(.*)$ index.php?rw=1&content=$1 [L,QSA] |
||
sparky Profil * |
#3 · Zasláno: 10. 9. 2013, 21:29:55
Taps:
s těmito pravidly to nejde vůbec |
||
Taps Profil |
#4 · Zasláno: 10. 9. 2013, 21:31:51
sparky:
v jakých tvarech máš napsané odkazy ? |
||
sparky Profil * |
#5 · Zasláno: 10. 9. 2013, 22:35:15
tak jak je to uvedeno v url, tedy:
<a href="index.php?content=foto&galerie=nejaka_galerie"> |
||
Kajman Profil |
#6 · Zasláno: 10. 9. 2013, 22:49:15
sparky:
V první řadě si musíte opravit odkazy generované stránky na <a href="/ryzab_new/galerie/nejaka_galerie"> Pak by měly fungovat pravidla z [#2] bez řádku 10. |
||
sparky Profil * |
#7 · Zasláno: 11. 9. 2013, 09:19:11
a bude mi to fungovat, když si GETem posilam content a nazev galerie?
|
||
Taps Profil |
#8 · Zasláno: 11. 9. 2013, 09:24:06
sparky:
Ano, nejlepší je to zkusit :-) |
||
sparky Profil * |
#9 · Zasláno: 11. 9. 2013, 10:15:10
zkusil jsem to a nefunguje
Jen jestli jsem to pochopil dobře, tam kde mám: <a href='index.php?content=foto&galerie={$value5[$i]['galerie']}' title='{$value5[$i]['title']}'>{$value5[$i]['nazev']}</a> mám napsat <a href='/ryzab_new/galerie/{$value5[$i]['galerie']} title='{$value5[$i]['title']}'>{$value5[$i]['nazev']}</a> |
||
Taps Profil |
#10 · Zasláno: 11. 9. 2013, 11:23:24
sparky:
Ano |
||
sparky Profil * |
#11 · Zasláno: 11. 9. 2013, 11:29:13
Taps
tak takhle mi to nefunguje Když to takto přepíšu, tak jak se tam posílá content a galerie? to má zajistit ten rewrite? Teď nechápu, jak by to mělo fungovat. |
||
Taps Profil |
#12 · Zasláno: 11. 9. 2013, 12:47:11
sparky:
zkus to ještě takto: <a href='galerie/{$value5[$i]['galerie']} title='{$value5[$i]['title']}'>{$value5[$i]['nazev']}</a> |
||
sparky Profil * |
#13 · Zasláno: 11. 9. 2013, 13:12:00
Taps:
to taky nepomáhá |
||
Davex Profil |
#14 · Zasláno: 11. 9. 2013, 18:52:49
sparky:
„tak takhle mi to nefunguje“ Možná by bylo dobré, kdybys popsal, jak se to nefungování projevuje a co by se mělo dít, kdyby to fungovalo. „to má zajistit ten rewrite?“ Přepis adres pomocí mod_rewrite funguje tak, že webserver přepisuje požadovanou adresu, kterou dostane od prohlížeče, na nějakou jinou. Na HTML kód stránky ani do PHP skriptu se nesahá. |
||
Taps Profil |
#15 · Zasláno: 11. 9. 2013, 21:09:01
sparky:
nebude na škodu, když si projdeš následující odkaz: Mod_rewrite |
||
sparky Profil * |
#16 · Zasláno: 12. 9. 2013, 11:00:47
Davex:
chtěl bych docílit toho aby se mi z url http://www.domena.cz/index.php?content=foto&galerie=nejaka_galerie zobrazovala http://www.domena.cz/galerie/nejaka_galerie zajímalo by mne, jestli to jde udělat pomocí mod_rewrite nebo, jestli ještě musím předělat odkazy |
||
Taps Profil |
#17 · Zasláno: 12. 9. 2013, 13:05:01
sparky:
Je nutné rovněž upravit i odkazy |
||
sparky Profil * |
#18 · Zasláno: 12. 9. 2013, 13:36:05
Taps:
takže to je zase jiná problematika, mohl bych požádat o nějaký vhodný odkaz, kde to nastudovat, nebo poprosit o radu, jakým směrem se ubírat, abych upravil ty odkazy? |
||
Taps Profil |
#19 · Zasláno: 12. 9. 2013, 17:33:47
sparky:
viz [#6] Kajman |
||
juriad Profil |
#20 · Zasláno: 12. 9. 2013, 17:43:50
PHP chápe odkazy ve formátu:
cesta/soubor.php?param1=hodnota1&param2=hodnota2 Pokud chceš použivat pěkné odkazy soubor/hodnota1/hodnota2 Z toho důvodu existuje modul rewrite do webového serveru Apache, který umožňuje zadat pravidla pro změnu adres.
Takovým pravidlem může být schématicky řečeno: (soubor)/(hodnota1)/(hodnota2) -> cesta/(soubor).php?param1=(hodnota1)&param2=(hodnota2) Stačí tedy zapsat pravidla a začít používat pěkné adresy. |
||
sparky Profil * |
#21 · Zasláno: 13. 9. 2013, 09:35:14
teď bych potřeboval trochu usměrnit, pořád mi není jasné, jak z
cesta/(soubor).php?param1=(hodnota1)¶m2=(hodnota2) udělat (soubor)/(hodnota1)/(hodnota2) nebo spíše nechápu, jak to bude fungovat, když budu mít v odkaze (soubor)/(hodnota1)/(hodnota2) |
||
Taps Profil |
#22 · Zasláno: 13. 9. 2013, 12:02:27
sparky:
hodnoty v odkaze (soubor)/(hodnota1)/(hodnota2) budou podstrčeny do cesta/(soubor).php?param1=(hodnota1)¶m2=(hodnota2) Nejlepší by bylo kdyby sis prošel odkaz v [#15] Taps |
||
sparky Profil * |
#23 · Zasláno: 13. 9. 2013, 13:44:52
už se mi to povedlo a ještě bych se chtěl zeptat proč nefunguje toto
RewriteEngine On RewriteBase /ryzab_new RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^galerie/(.*)$ /index.php?content=foto&galerie=$1 [L,QSA] RewriteRule ^(.*)$ index.php?rw=1&content=$1 [L,QSA] je to tím, že tam jsou 2 pravidla? |
||
Kajman Profil |
#24 · Zasláno: 13. 9. 2013, 20:12:06
sparky:
Dojde postupně ke dvojímu přepsání, kdy na konci bude intetní adresa index.php?rw=1&content=index.php Podmínky RewriteCond patří jen k následujícímu pravidlu RewriteRule. Zkuste podmínky z 3. a 4. řádku dát i mezi 5. a 6., pokud to poslední pravidlo potřebujete také. |
||
sparky Profil * |
#25 · Zasláno: 13. 9. 2013, 20:19:39
Kajman:
to už jsem zkoušel, dát tam znova ty podmínky a nefungovalo to |
||
Davex Profil |
#26 · Zasláno: 13. 9. 2013, 21:20:27
sparky:
Nechal bych tam jen to první pravidlo bez úvodního lomítka v přepsané adrese, protože to je nahrazeno cestou v RewriteBase .
RewriteEngine On RewriteBase /ryzab_new RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^galerie/(.*)$ index.php?content=foto&galerie=$1 [L,QSA] |
||
sparky Profil * |
#27 · Zasláno: 13. 9. 2013, 21:27:36
Davex:
to rewriteBase je tam jen na localu, na serveru je pouze lomitko RewriteBase / |
||
sparky Profil * |
#28 · Zasláno: 14. 9. 2013, 11:06:47
už je vše funkční, děkuji za rady
|
||
Časová prodleva: 11 let
|
0