Autor Zpráva
leorond
Profil
Ahoj, potřeboval bych udělat pěkné url ale narazil jsem na problém.

Když mé adresy jsou index.php?strana=pages/home a chci například aby stránkování bylo /home/strana-$ tak jak bude vypadat zápis v .htaccess?

Prozatím mám tento zápis který zařídí adresu /strana-$

RewriteRule    ^strana-(.*)$   index.php?strana=pages/home&stranka=$1

Zkoušel jsem změnit ^strana-(.*)$ na ^home/strana-(.*)$ ale bez výsledku.

Děkuji za radu
Taps
Profil
Musis pridat dalsi promennou
leorond
Profil
Taps:
Ano to vím ale nepřišel jsem na to jak ji tam přidat, zkusil jsem některé návody ale zkrátka mi to nefungovalo
juriad
Profil
Snad bude fungovat toto:
RewriteRule    ^(.*)/strana-(.*)$   index.php?strana=pages/$1&stranka=$2

Mimochodem, asi bych zvolil jiné pojmenování než strana a stranka, jsou příliš blízko sebe, budeš v tom dělat chyby.
leorond
Profil
juriad:
Bohužel nefunguje, zkusil jsem ještě dát

RewriteRule    ^home(.*)/strana-(.*)$   index.php?strana=pages/$1&stranka=$2

také jsem zkusil

RewriteRule    ^home(.*)/strana-(.*)$   index.php?strana=pages/home&stranka=$1

stránku to načte ale nestránkuje
Taps
Profil
A v jakem tvaru mas odkazy?
leorond
Profil
Myslíš když to načte ale nefunguje?

http://localhost/home/strana-$

přitom mi ale normálně funguje bez /home když nastavím

RewriteRule    ^strana-(.*)$   index.php?strana=pages/home&stranka=$1

tak proč nefungují dvě proměnné když jednu to pustí v pořádku?


Je možné že dělá problémy lomítko za pages?
Taps
Profil
Myslim url kterou mas v tagu a href
leorond
Profil
Při tomto nastavení

RewriteRule    ^strana-(.*)$   index.php?strana=pages/home&stranka=$1

mám href=\"/strana-".$url_cislo."\"

Takže při tomto nastavení

RewriteRule    ^(.*)/strana-(.*)$   index.php?strana=pages/$1&stranka=$2

By mělo být href=\"/home/strana-".$url_cislo."\"


Nebo se pletu?
Taps
Profil
V odkaze nevidim promennou pro strankovani
leorond
Profil
Dobré ráno, tak jsem to stále nevyřešil, zkusil jsem nepřeberné množství variant a stále to nefunguje.


Ok tak jsem si trochu nastudoval RewriteRule a ted už mi to funguje, stačilo to udělat takto

RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?strana=pages/$1 [QSA]
RewriteRule    ^(.*)/strana-(.*)$   index.php?strana=pages/$1&stranka=$2
leorond
Profil
Otázka, co mám udělat aby mi to bralo i jiné složky než jen pages?

Mohu tam přidat nějak výjimku?
juriad
Profil
leorond:
Logicky, v přepisu můžeš použít jenom informace, které jsou dostupné v původní adrese. Z něčeho musíš poznat, o jakou složku se jedná.
Když už jsi si nastudoval RewriteRule, začni premýšlet o tom, jaké všechny typy adres na webu budeš mít. Zatím mi přijde, že to lepíš dohromady a občas si vzpomeneš, že chceš něco přidat.
Možná se podívej na Řešení některých častějších problémů (FAQ) » Univerzální obecné pravidlo. Je to jedno pravidlo, které přesune logiku do PHP.

Mimochodem, ta pravidla lze napsat lépe; tu část před lomítkem můžeš obecně napsat jako: ([^/]+) (posloupnost znaků, které nejsou lomítkem).

Přesouvám vlákno do Konfigurace webového serveru.
leorond
Profil
Tak jinak, počítám že chceš docílit toho abych si udělal nejdříve adresy

example.com?url=jedna/dva/tri

Mám pro tebe asi novinku ale já už mám adresy

example.com?url=jedna/dva/tri

teď to potřebuju zapsat do .htaccess tak abych mohl includovat z více složek a ne jen z té jedné
juriad
Profil
leorond:
Z adresy example.com/pes nelze zjistit, do jaké složky patří. Musíš tedy navrhnout adresy tak, aby to z nich bylo poznat (prostředky htaccess).
Má se pes směřovat do složky pages, zvirata, nebo co-si-date-dnes-k-obedu?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: