rewrite és // összeolvadásának elkerülése
van nekem egy url-rew rite sémám:
www.valami.com/mappa/blog/tags/ - ez kilistázza az összes bejegyzést
valamint
www.valami.com/mappa/blog/tags/php - ez a "php" témájú bejegyzéseket
www.valami.com/mappa/blog/tags/php/2 - ezeknek a második oldala
ezek mind rewriteolódnak a következő formában:
www.valami.com/mappa/* -ról
www.valami.com/mappa/?q=* -ra
szeretném hogy a www.valami.com/mappa/blog/tags//2
az összes bejegyzés második oldalára mutasson, de átírt url-ben ?q=blog/tags/2 -lesz és a "2" témájú bejegyzéseket listázná...
(ilyenkor phpinfo-val a QUERY_STRING-ben url=blog/tags/2/ van, a REQUEST_URI-ban meg mappa/blog/tags//2)
de ha www.valami.com/mappa/?q=blog/tags//2 -vel hívom meg, akkor nem olvadnak össze a //-k, és megkapom a második oldalt
van-e erre valami trükk, vagy inkább érdemes másképp megoldani a lapozás urljét?
(van még egy plusz csavar is: a valami.com/mappa/blog url a "hírek" témájú bejegyzésket listázza)
a .htaccess:
■ www.valami.com/mappa/blog/tags/ - ez kilistázza az összes bejegyzést
valamint
www.valami.com/mappa/blog/tags/php - ez a "php" témájú bejegyzéseket
www.valami.com/mappa/blog/tags/php/2 - ezeknek a második oldala
ezek mind rewriteolódnak a következő formában:
www.valami.com/mappa/* -ról
www.valami.com/mappa/?q=* -ra
szeretném hogy a www.valami.com/mappa/blog/tags//2
az összes bejegyzés második oldalára mutasson, de átírt url-ben ?q=blog/tags/2 -lesz és a "2" témájú bejegyzéseket listázná...
(ilyenkor phpinfo-val a QUERY_STRING-ben url=blog/tags/2/ van, a REQUEST_URI-ban meg mappa/blog/tags//2)
de ha www.valami.com/mappa/?q=blog/tags//2 -vel hívom meg, akkor nem olvadnak össze a //-k, és megkapom a második oldalt
van-e erre valami trükk, vagy inkább érdemes másképp megoldani a lapozás urljét?
(van még egy plusz csavar is: a valami.com/mappa/blog url a "hírek" témájú bejegyzésket listázza)
a .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mappa/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ?q=$1 [QSA,L]
</IfModule>
Másképp...
Ilyenkor vagy gondolkozz el azon hogy kell-e lapozás vagy találj megoldást rá. Két lehetséges megoldás:
- Megnézed, van-e trailing slash (/ a végén) és annak függvényében oldal vagy bejegyzés
- Közös címtér-kezelést vezetsz be, ami el tudja dönteni hogy egy URL mihez tartozik (nyilván nem lehetnek ütközések)
Az utóbbit egyébként is erősen javaslom, a bedrótozott URL-ek sose jók.
egyenlőre" megoldottam"
trailing slash mindig van (generálom az urleket is) csak elfelejtettem odaírni.
közös címtéren mit értesz, valami példát tudsz mondani/mutatni?
Egyszerű példa
A kicsit bonyolultabb megoldás a hierarchikus adatkezelés c. cikksorozatban közöltekre egy URL kezelő rendszert építeni (ez a gyakorlatban nagyon bevállt nálunk).