![]() |
Säg att man har en dynamisk hemsida programmerad i php. Då kommer man få en ganska ful php-ändelse på sin URL när folk surfar runt (typ http://www.fest.se/index.php?stad=motala&dag=1&manad=5... ) som även kommer hänga med om folk lägger till den som en bookmark. Nån som har koll på hur man kan göra för att slippa det här? Cloaking?
|
För det första är det ingen php-ändelse utan query strängen du pratar om.
mod_rewrite (apache) gör just det du vill göra. |
Även om du använder mod_rewrite kommer man få en query sträng av något slag, även om man kan få det se bättre ut.
|
Citat:
RewriteRule /(.*)/(.*)/(.*)/$ /index.php?stad=$1&dag=$3&manad=$2 //Björn |
mod_rewrite skulle kunna vara något, men om du har många variabler i query strängen, så är frågan hur mkt snyggare det skulle kunna bli
http://www.fest.se/index.php?stad=mo...aldersgrans=18 vs http://www.fest.se/motala/05/01/pluto/kalle/schlager/18 |
Smidigast är att försöka sända det som POST istället för GET.
|
Citat:
|
Spara querys i SESSION.
-Martin |
Samma problem med SESSION som med POST, de hänger inte med om besökaren lägger till sidan bland sina bokmärken. Så jag föreslår också på GET + mod_rewrite.
|
Wops, jag var nog lite otydlig :) Jag vill inte att querysträngen ska sparas när man bookmarkar sidan. Så post eller session är kan nog funka. Är inte post beroende av att man aktivt måste aktivera en sökning genom att tex trycka på en submit knapp? Saken är den att jag även sparar undran phpvariabler när folk navigerar på sidan. Hur funkar session?
|
Att använda någon form av session för det hela skulle innebära att du sparade undan alla variabler kopplat till ett unikt session ID. Att sen spara på den informationen i ett år tills besökaren kommer tillbaka med sitt bokmärke är nog en dålig ide om det inte är väldigt glest med besökare.
POST info sparar ingen browser i ett vanligt bookmark, och är därmed inget jag skulle rekommendera. Håller med föregående om mod_rewrite och GET. Men vill också ge förslaget att lite variation i URLen ofta gör skillnad i själva utseendet när det är många variabler. T ex fest.se/motala-05-01/pluto_18ar.html jämfört med fest.se/motala/05/01/pluto/18/ |
Att länka runt på en hemsida med POST är inget att rekommendera. Dels så kommer inga sökmotorer att kunna navigera runt på din sida och besökaren kan inte backa tillbaka med bakåtknappen på webbläsaren (går bra på Opera men inte på IE och FF). Du kommer att få en massa arga besökare.
Ett omständigt sätt att göra det du vill är att ge varje alternativ i query-strängen en kod eller löpnummer och lagra variablarna i en tabell. Du skulle således få en url som liknar något i stil med www.dinsida.se/37733. Då går det att bokmärka sidan och när någon accessar sidan slår man upp raden i tabellen med den koden och ser efter vilka värden som ska vara på stad, dag osv. |
Det må så vara att query-strängen är lite "ful", men den finns ju faktiskt där av en anledning också. Varför vill man inte att folk ska få något annat än startsidan med i sina bokmärken? Onödigt dumt att dölja sådan info för besökaren om man frågar mig...
|
Jag kör .htaccess för att köra allt till index.php:
RewriteEngine On Options +FollowSymlinks RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [QSA,L] Sedan splittar jag upp exvis www.domän.se/var1/var2/var3 osv $urldecode = (preg_split("[/]",$_SERVER[REQUEST_URI],-1,PREG_SPLIT_NO_EMPTY)); Så att det blir: $var1 = $urldecode[0]; $var2 = $urldecode[1]; $var3 = $urldecode[2]; osv.. |
Alla tider är GMT +2. Klockan är nu 13:55. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson