mboost-dp1
PHP og mod_rewrite
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg er ved at udvikle en ny hjemmeside i php, hvor jeg bla. vil bruge mod_rewrite til at styre url'en. Nedenunder er en simpel udgave af det script jeg har skrevet, som jeg dog har nogle problemer med.
.htaccess
index.php
Problemet er, hvis jeg f.eks. vil skrive domain.dk/test, så skal der ligge en mappe i roden med navnet "test".
Er dette meningen, eller er der en måde at undgå det på?
.htaccess
RewriteEngine on
RewriteRule ^(.+)/$ index.php
index.php
<?php
$str = preg_replace("'/'", "", $_SERVER['REQUEST_URI'], 1);
$exp = explode("/", $str);
for($x = 0; $x < count($exp); $x++)
echo $exp[$x].'<br />';
?>
Problemet er, hvis jeg f.eks. vil skrive domain.dk/test, så skal der ligge en mappe i roden med navnet "test".
Er dette meningen, eller er der en måde at undgå det på?
Du kunne også bare kun bruge mod_rewrite.
Hvis de peger ned i domain.dk/lortrjhy895037t89ergj eller domain.dk/gjhfrjdegh/ så får du en 404, ikke?
Det kan mod_rewrite filtrere på. Jeg havde fornyligt samme problem, og løste det sådant:
På denne vis bliver alt, hvad der skrives efter domain.dk (medmindre der findes en fil eller en mappe) fjernet og omskrevet til domain.dk.
Dette vil dog ikke virke på f.eks. 403'ere.
Hvis de peger ned i domain.dk/lortrjhy895037t89ergj eller domain.dk/gjhfrjdegh/ så får du en 404, ikke?
Det kan mod_rewrite filtrere på. Jeg havde fornyligt samme problem, og løste det sådant:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*) / [L,R]
På denne vis bliver alt, hvad der skrives efter domain.dk (medmindre der findes en fil eller en mappe) fjernet og omskrevet til domain.dk.
Dette vil dog ikke virke på f.eks. 403'ere.
Er det ikke coolere at have en decideret url-handler i PHP-koden? Jeg har lidt prøvet at undersøge hvordan sådan en fætter ser ud i PHP, men har ikke rigtigt kunne finde nogen.
Jeg har også prøvet at kigge på Drupal, og hvordan de gør det, men har gåvet lidt op.
Nogen idéer?
Jeg har også prøvet at kigge på Drupal, og hvordan de gør det, men har gåvet lidt op.
Nogen idéer?
w00t
Jeg glemte da et eksempel :D
http://gaypron.dk/path/to/yourmom/ <-- fx :)
Eller som paa newz.dk/~fidomuh :)
Jeg glemte da et eksempel :D
http://gaypron.dk/path/to/yourmom/ <-- fx :)
Eller som paa newz.dk/~fidomuh :)
zin (10) skrev:#9: Umiddelbart ville jeg skrave så meget af URL'en som muligt i Apache og derefter evt. specificere med PHP.
Binder du dig så ikke ret meget til Apache og mod_rewrite? Jeg tænkte mest på muligheden for senere at flytte til Lighttpd eller NGINX.
Hvis det var PHP'en der legede url-handler, så var det ligemeget med server-softwaren.
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.