htaccess till ?page=

Diskussion av datorer, inte bara i rent tekniska aspekter utan även i politiska och filosofiska.

Moderator: Moderatorgrupp

sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

htaccess till ?page=

Inlägg av sanda »

Tjenare! Satt och klurade hur jag ska fixa till mina länkar så de blir mer sökvänliga. Länkarna ser nu ut så här mindomän.se/?page=start skulle vilja att de blev mindomän.se/start

Hur skriver jag detta i htaccessen? Har inte arbetat så mkt med detta innan så är tacksam för svar.
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: htaccess till ?page=

Inlägg av Kjell »

/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Läste och försökte, dock utan att lyckas riktigt.. Hmm ni har möjligtvis inte erfarenhet av detta?
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: htaccess till ?page=

Inlägg av Kjell »

Har du inget php program före "?" så som index.php?page=start ?
Är själv lite osäker hur "Rewrite" fungerar, men det borde vara något åt det här hållet.
Jag la till en sida "om oss".

Kod: Markera allt

RewriteEngine on
Rewriterule ^(.+)./index.php?page=start-(.+)$			./start.html
Rewriterule ^(.+)./index.php?page=omoss-(.+)$			./omoss.html
eller då är det så här

Kod: Markera allt

RewriteEngine on
Rewriterule ^(.+)./start.html-(.+)$			./index.php?page=start
Rewriterule ^(.+)./omoss.html-(.+)$			./index.php?page=omoss
Kan säker bli rättad av någon som kan det här på sina fem fingrar :)
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Användarens profilbild
Holger
Support - Ledare
Support - Ledare
Inlägg: 6561
Blev medlem: 2004-06-09 09:32
Svar: 1

Re: htaccess till ?page=

Inlägg av Holger »

sanda skrev:Tjenare! Satt och klurade hur jag ska fixa till mina länkar så de blir mer sökvänliga. Länkarna ser nu ut så här mindomän.se/?page=start skulle vilja att de blev mindomän.se/start

Hur skriver jag detta i htaccessen? Har inte arbetat så mkt med detta innan så är tacksam för svar.
Problemet med aom du länkar om mindomän.se/start är att du inte kan använda undermappar längre!
Holger Gremminger
Ingen support via PM!
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Re: htaccess till ?page=

Inlägg av Kail »

Jo, han kan använda underkataloger då Apache först kollar om filen eller katalogen finns (!-f, !-d). Jag råder dock Sanda att byta till Drupal direkt då Drupal gör detta (kallas Clean URLs), lika bra att lära sig ett vettigt CMS på en gång. Vill du trots allt göra det ska din rewrite rule se ut så här (taget från .htaccess som medföljer Drupal, med modifikationer):

Kod: Markera allt

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Rewrite current-style URLs of the form 'index.php?page=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
</IfModule>
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Tckar massor, Kails förslag fungerade kanon. Jag inkluderar de flesta sidor från min index så även om det inte hade fungerat med andra mappar så hade det ju löst det..

Som sagt, tack igen.

Drupal har jag tittat en hel del på men det bästa CMS för mina behov är nog ändå Wordpress. Oerhört plexibellt och går att tänja nästan hur mkt man vill :)
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Re: htaccess till ?page=

Inlägg av Kail »

WP duger för enklare sajter som i botten är bloggar men någon schweizisk armékniv är det inte riktigt i min mening. Drupal har en rejäl tröskel men det är det värt, möjligheterna är nästintill obegränsade.
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Livar upp en gammal tråd här :)

Har använd mig av just en sån här rewrite regel ett tag nu men skulle vilja förfina mina sidor jag hämtar från min mysql db. Sidornas URL blir förnärvarande:

pages?id=1
pages?id=2
o.s.v

Hur kan jag fixa till dom så dom använder sig av en titel istället. Jag har börjat med att lägga till en ny rad i tabellen vid namn "path" (man kanske vi ha en annan adress än titeln) och i min:

pages?id=1

är titel:
Startsidan
och path:
home

pages?id=2

är titel:
Om Oss
är path:
about_us

Sammanfatttning:
Hur kan jag med hjälp av min htaccess fil använda mig av min egen valda "path" istället för pages?id=1,2,3 osv.

Hoppas ni hängde med här :)
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Re: htaccess till ?page=

Inlägg av Kail »

En rewrite-regel samt att du ser till att du använder titel som nyckel i dina SQL-frågor i databasen.

pages?titel=Startsidan

Kod: Markera allt

<?php
// clean() är en hypotetisk funktion som rensar indata och hindrar SQL injections
// se: http://en.wikibooks.org/wiki/PHP_Programming/SQL_Injection
// klass du kan använda: http://www.phpclasses.org/browse/package/2189.html

$titel = clean($_GET['titel']);
$sql = sprintf("SELECT * FROM page WHERE titel = '%s';", $titel);
$res = mysql_query($sql)... // etc
?>
.htaccess eller vhost-confen

Kod: Markera allt

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Rewrite current-style URLs of the form 'pages?titel=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ pages?titel=$1 [L,QSA]
</IfModule>
Återigen säger jag Drupal. :)
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
Användarens profilbild
Kail
Administratör
Administratör
Inlägg: 2937
Blev medlem: 2003-06-03 14:53
Svar: 0

Re: htaccess till ?page=

Inlägg av Kail »

Apropå SQL-injektioner :)
Bilagor
exploits_of_a_mom.jpg
exploits_of_a_mom.jpg (31.4 KiB) Visad 13375 gånger
Jakob Persson - Grundare av phpBB Sverige - IT-konsult - http://www.jakob-persson.com
The Complete phpBB Template Design Guide (phpBB 2.x): http://archive.jakob-persson.com/articl ... index.html
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Hur gör jag för att använda 2 rewrites i samma htaccess fil då? för jag vill ha kvar den andra jag har till "statiska" sidor jag har.

Har funderat en del på drupal men finns inte tid för det just nu (hört att det är en hööööög tröskel innan det öppnar sig).
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

Jag antar att jag borde börja med att göra path till PRIMARY KEY i min db?
sanda
Extra aktiv medlem
Extra aktiv medlem
Inlägg: 112
Blev medlem: 2007-10-01 03:17
Svar: 0

Re: htaccess till ?page=

Inlägg av sanda »

hmm jag kan inte ens få till en ren URL med mitt id ni...

Blir tokig! Får det inte att funka.

Kod: Markera allt

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Rewrite current-style URLs of the form 'index.php?page=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
  RewriteRule /pages/(.*)$ pages?id=$1 [L,QSA]
</IfModule>
Första "rewriten"
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]

Får mina ?page=filen att bli /filen (för statiska filerfunkar kanon!)

denna "rewriten"
RewriteRule /pages/(.*)$ pages?id=$1 [L,QSA]

Är tänkt att förfina sidor från databasen:
från:
/pages?id=2
till
/pages/2 <- id numret till en början

Men får inte andra rewriten att fungera, krockar dom kanske med varann eller nått liknande?
Användarens profilbild
Kjell
Hedersmedlem
Hedersmedlem
Inlägg: 4510
Blev medlem: 2006-11-11 23:35
Svar: 0

Re: htaccess till ?page=

Inlägg av Kjell »

Har inte satt mig in så mycket i problemet, men den här borde fungera.

Kod: Markera allt

RewriteRule ^(.+)\.(html|htm)$ index.php?page=$1 [QSA,L]
Den gör om alla val till html, exempelvis index.php?page=huvudsida blir huvudsida.html
/Kjelle KonsultPoolen * Facebook * Twitter * MODx Verkstan
Brukar sova lite efter 29:e timman och Ingen support via PM!
Skriv svar

Vilka är online

Användare som besöker denna kategori: 1 och 0 gäst