Avatar billede zeattle Nybegynder
19. januar 2005 - 18:36 Der er 23 kommentarer og
1 løsning

RewriteRule virker næsten

Hej

Jeg har et problem med dette:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^([a-zA-Z0-9]+)$ /esbjerg-devils/index.php?side=$1
RewriteRule ^([a-zA-Z0-9]+)/$ /esbjerg-devils/index.php?side=$1
RewriteRule ^([a-zA-Z0-9]+)?$ /esbjerg-devils/$1

Det virker fint hvis man fx bruger www.side.dk/nyheder - Så viser den nyheder.php, men hvis jeg så fx skal linke til nyheder.php?id=1 Så kan den ikke finde ud af det, hvad gør jeg for at dette virker så den ser sådan ud:
www.side.dk/nyheder/1

Nogen der ved det?
Avatar billede zeattle Nybegynder
19. januar 2005 - 18:37 #1
Linien:
RewriteRule ^([a-zA-Z0-9]+)?$ /esbjerg-devils/$1

Skal i ikke tænke på det var en fejl linie :)
Avatar billede stefmeister Nybegynder
19. januar 2005 - 19:02 #2
<?

preg_match( '/([0-9]+)/', $_SERVER['PATH_INFO'], $matches );

echo $matches[1];

?>
Avatar billede stefmeister Nybegynder
19. januar 2005 - 19:03 #3
så bare hvis $matches[1] ikke findes, så bruger du index delen. og hvis den findes så bruger du index?id=$matches[1]
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:05 #4
Hvor skal det der så ligge og hvordan fungere det?
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:14 #5
Det skal jo fungere så hvis jeg skriver www.side.dk/nyheder/1

så viser den ligesom dette:
www.side.dk/?side=visnyhed&id=1
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:15 #6
Avatar billede stefmeister Nybegynder
19. januar 2005 - 19:16 #7
prøv at lave en fil du f.eks. kalder fakedir.php, så skriv den tekst i filen.

så kør filen http://localhost/fakedir.php

så skriver den ingenting. men hvis du så skriver

http://localhost/fakedir/hejsa...

så vil den skrive hejsa...

på samme måde kan du bruge den som id-numre.
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:18 #8
Det virker så ikke...
Avatar billede stefmeister Nybegynder
19. januar 2005 - 19:25 #9
ja præcis..

www.side.dk/visnyhed/1

ved ikke hvordan den kunne laves med to "variabler" men hvis f.eks. din side hed visnyhed.php så kunne det laves sådan her:

<?

if(preg_match( '/([0-9a-z-]+)/', $_SERVER['PATH_INFO'], $matches )) {

SQL = "SELECT nyhed,id FROM tabel WHERE id = ".$matches[1]."";
bla bla

} else {
echo 'Hvis ingenting er valgt....';
}
?>
Avatar billede stefmeister Nybegynder
19. januar 2005 - 19:26 #10
den første durer kun med tal...

men prøv denne:

<?

if(preg_match( '/([0-9a-z-]+)/', $_SERVER['PATH_INFO'], $matches )) {
echo 'Du skrev: ';
echo $matches[1];

} else {
?>
Hejsa...
<?
}
?>
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:29 #11
er ked af at skuffe dig, men det virker stadig ikke :/
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:30 #12
men hvad skal jeg så skrive for den egenlig viser det jeg mener?
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:37 #13
Jeg har fundet ud af at denne linie virker i min htaccess:
RewriteRule ^([^/]+)/([^/]*)/?$ /esbjerg-devils/index.php?side=$1&forum=$2

MEN den viser så ikke mine billeder på forsiden, hvorfor ikke det?
Avatar billede zeattle Nybegynder
19. januar 2005 - 19:54 #14
Har fundet ud af min ?side lader den tro at billeder ligger i den mappe(mappen findes ikke da det er en fil)
Avatar billede intenz Novice
19. januar 2005 - 20:26 #15
RewriteRule ^nyheder/([^/]*)/?$ /esbjerg-devils/nyheder.php?id=$2

?
Avatar billede intenz Novice
19. januar 2005 - 20:26 #16
$1 selvfølgelig

men det er måske ikke lige så fiks
Avatar billede zeattle Nybegynder
19. januar 2005 - 20:40 #17
det helt forkert for jeg åbner siden nyheder med ?side=nyheder jo?
Avatar billede stefmeister Nybegynder
19. januar 2005 - 22:05 #18
nåå.....

Det jeg har skrevet skal ikke være inde i .htaccess, det skal være i en php-fil.
Avatar billede zeattle Nybegynder
19. januar 2005 - 23:52 #19
stefmeister, det havde jeg også gjort, altså i en php fil det vidste jeg skam godt :)
Avatar billede stefmeister Nybegynder
20. januar 2005 - 17:03 #20
hmm... spøjst.. det er mystisk.. det virker på min. Men ellers prøv denne guide:

http://php.coder.dk/fakedir
Avatar billede zeattle Nybegynder
20. januar 2005 - 17:21 #21
Har fundet ud af det nu, det den måde jeg includer på, jeg takker, gider du smide et svar så jeg kan acceptere dig? :)
Avatar billede stefmeister Nybegynder
22. januar 2005 - 13:27 #22
svar :D
Avatar billede stefmeister Nybegynder
22. januar 2005 - 13:27 #23
ups... her
Avatar billede alister_crowley Nybegynder
22. januar 2005 - 13:30 #24
en lille kommentar..

Hvis i tilføjer:

Options -MultiViews

Så slipper i for problemer med at apache fortolker /nyheder som /nyheder.php uden brug af mod_rewrite :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester