[APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Mam nasledujuci problem:
Chcem, aby po uzivatelovom zadani adresy v tvare
http://xxx.xx/abc alebo http://xxx.xx/abc/ tato adresa bola prepisana na povedzme http://xxx.xx/xyz.php?co=abc
To dosiahnem pomerne jednoducho zapnutim Mod Rewrite a napisanim nasledovneho riadku do .htaccess
RewriteRule ^abc/?$ xyz.php?co=abc
Ak uzivatel zada http://xxx.xx/abc , vsetko funguje v poriadku.
Problem nastane, ak uzivatel zada http://xxx.xx/abc/ .
Vtedy sa mi vsetky relativne odkazy, ktore v pripade zadania "abc" bez lomitka na konci fungovali normalne, pokaslu tym, ze sa pred ne prida "abc/".
Nevie niekto co s tym?
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Tohle je jen z voleje, co takto: RewriteRule ^abc\/?$ xyz.php?co=abc
Edit: tak lomitko vypada ze je jako normalni znak, tak zkus takhle ^abc[/]?$ xyz.php?co=abc
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
ee
Asi sme sa nepochopili.
Ten moj povodny (aj tvoj) rewriterule funguje. Lenze po zadani odkazu do okna prehliadaca sa mi rozbije kompletne cela stranka, pretoze v subore xyz.php vsetky relativne linky (obrazky, styly, ...), ktore predtym ukazovali logicky na http://xxx.xx/ ukazuju na http://xxx.xx/abc/ hoci sa otvori subor xyz.php?co=abc
[edit]
vsetko, tzn.
^abc/?$
^abc\/?$
^abc[/]?$
funguje tak isto... ale moj problem to neriesi :(
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
snad te chapu:
viz vytvoreni adresarove struktury na http://interval.cz/clanek.asp?article=3985
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
skoro... potrebujem vlastne presny opak ;D
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Aha, uz sem pochopil, rewrite jako takovej funguje OK, ale tobe jde o to, ze linky na ktery se odkazujes ukazujou do ..., jelikoz si vemou url predanou prohlizecem a tam samo nic neni. Co takhle nekde v php nastavit root ?
Nebo misto relativniho adresovani pouzit absolutni> DOCUMENT_ROOT/scrip.php (ten root si samo nactes z promenny)
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal Jezevec
Nebo misto relativniho adresovani pouzit absolutni> DOCUMENT_ROOT/scrip.php (ten root si samo nactes z promenny)
No... to napadlo aj mna... ale je to dost o hubu prerabat to uplne vsade :( Asi mi nic ine neostane...
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Napadl mě workaround v PHP - pokud se "co" rovná ".*\/" tak z něj to lomítko na konci oříznout.
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal David Jaša
Napadl mě workaround v PHP - pokud se "co" rovná ".*\/" tak z něj to lomítko na konci oříznout.
To uz je jedno, ako to budem robit. Zaklad bol ten, ze som sa chcel vyhnut prerabaniu 150kB PHP kodu :(
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal PiT
To uz je jedno, ako to budem robit. Zaklad bol ten, ze som sa chcel vyhnut prerabaniu 150kB PHP kodu :(
Ale stejně mě to přijde divný, že by to nešlo přímo v mod_rewrite. Bohužel nejsu ani apache ani regexp guru, takže jenom nápad (všecko může být blbě >:}):
Nějak pomocí RewriteCond zjistit, jestli je za tím stringem lomítko nebo není:
Kód:
RewriteCond %{REQUEST_URI} ^abc/$
resp.
Kód:
RewriteCond %{REQUEST_URI} ^abc$
A podle toho uplatnit rewrite...
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Problem je v tom, ze kedze klient pouziva adresu http://xxx.xx/abc/, tak posiela vsetky requesty s tym "/abc/" -> musis to odtial nejako zmazat.
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal Rainbow
Problem je v tom, ze kedze klient pouziva adresu
http://xxx.xx/abc/, tak posiela vsetky requesty s tym "/abc/" -> musis to odtial nejako zmazat.
Počáteční nebo koncový lomítko? A jsem trochu zagooglil - co toto? Mělo by to ošetřit obojí:
Kód:
RewriteRule ^/\?(abc)/(.*) xyz.php?co=$1&zbytek_uri_bez_lomitka=$2
http://httpd.apache.org/docs/1.3/mod...ml#RewriteRule
http://www.root.cz/clanky/regularni-vyrazy-5/
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
co takhle
HTML kód:
<base href="xxx.xx" />
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal ripper
co takhle
HTML kód:
<base href="xxx.xx" />
to by podle me melo fungovat, BTW to je uvedene v tom odkaze, co jsem postnul v minulem postu
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Citace:
Původně odeslal ripper
co takhle
HTML kód:
<base href="xxx.xx" />
Uzasne jednoduche a pritom ucinne :) Vdaka.
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
Mno, tak z pouzitia BASE tagu vyvstal dalsi problem. A to, ze mi to poserie aj vsetky tagy, ktore nemaju ukazovat nikam (href="#")... Da sa to nejako rozumne (bez pouzitia JavaScriptu) osefovat? :(
Zatial to riesim takto: href="javascript:void(0)" , no nie je to zrovna koser...
Re: [APACHE, HTML] Mod Rewrite a "/" na konci prikazu
PiT: Zkoušels to RewriteRule z #12? Ověřil bych to u sebe, ale nějak teď nestíhám zjišťovat, proč mi nejde mod_rewrite. :-D