Avatar billede mrfunder Nybegynder
09. juli 2008 - 21:54 Der er 25 kommentarer og
1 løsning

PHP samt Htaccess url_rewriting hjælp

Hej alle.

Jeg har et problem med at få mit url-rewriting til at virke:

Min url ser i øjeblikket således ud:

http://localhost/carfun/forum/kategori/traad/?thread_id=30
- Når denne url loades åbnes der en .index fil i /traad/ mappen, og denne henter så info omkring forum tråden via $_GET=thread_id

Min mening er at få url'en til at se pænere ud:
http://localhost/carfun/forum/kategori/traad/30/

Jeg har prøvet med:

RewriteEngine on
RewriteRule ^/carfun/forum/kategori/traad/([0-9]+)/$ /carfun/forum/kategori/traad/?thread_id=$1

men det giver flg. fejl når jeg ser en side:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.




Hvad gør jeg galt? På forhånd tak :)
Avatar billede mrfunder Nybegynder
09. juli 2008 - 21:55 #1
Det skal forøvrigt siges at jeg har lavet min mappestruktur således de forskellige undersider fx. carfun/forum/ eller carfun/forum/kategori alle indeholder en fil kaldet index således man kan skrive carfun/forum for at loade- jeg kan blot ikke få det til at virke hvis der skal et $id med.
Avatar billede erikjacobsen Ekspert
09. juli 2008 - 23:35 #2
Hvad står der så i din error log?
Avatar billede mrfunder Nybegynder
10. juli 2008 - 10:02 #3
Hej. Hvordan tjekker jeg denne?

På forhånd tak
Avatar billede erikjacobsen Ekspert
10. juli 2008 - 10:58 #4
Du kører på localhost? Så har du formentlig enten en IIS eller en Apache webserver kørende? Jeg ved ikke noget om IIS, men du bestemmer selv i opsætningen af Apache, eller kan læse i dens konfigurationsfil, hvor den lægger logs.
Avatar billede mrfunder Nybegynder
10. juli 2008 - 16:10 #5
[Thu Jul 10 16:09:05 2008] [alert] [client 127.0.0.1] C:/SRV/wamp/www/carfun/forum/kategori/traad/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

Jeg har ingen anelse af hvad den kommer fra
Avatar billede mrfunder Nybegynder
10. juli 2008 - 16:12 #6
Jeg har fundet ud af ved en hurtig googling af det var fordi jeg ikke havde det tilladt i min apache config :)

Men jeg er stadig blank, det virker som før, dog uden fejl nu.. men resultatet af url'en er det samme
Avatar billede erikjacobsen Ekspert
10. juli 2008 - 16:15 #7
Jeg forstår ikke hvad du mener, der virker og hvad der ikke virker.
Avatar billede mrfunder Nybegynder
10. juli 2008 - 16:24 #8
http://localhost/studybox/forum/kategori/traad/2/

Giver fejlen:

Not Found

The requested URL /carfun/forum/kategori/traad/2/ was not found on this server.

Så jeg er stadig tvunget til at skrive:
http://localhost/carfun/forum/kategori/traad/index.php?thread_id=2
Avatar billede mrfunder Nybegynder
10. juli 2008 - 16:25 #9
Avatar billede dkfire Nybegynder
10. juli 2008 - 21:56 #10
Og du er sikker på du har aktiveret mod_rewrite og at du har genstartet serveren ??
Og at din htaccess ligger i din rod for den hjemmeside ???
Avatar billede mrfunder Nybegynder
10. juli 2008 - 22:31 #11
mod_rewrite er aktiveret, server er samtidigt blevet genstartet.

Min struktur ser således ud:

/localhost/
  /carfun/
    /forum/
      /kategori/
        /traad/
          index.php
          .htaccess

Altså ligger både index filen samt .htaccess filen i traad-mappen.

.htaccess ser således ud:
RewriteEngine on
RewriteRule ^/carfun/forum/kategori/traad/([0-9]+)/$ index.php?thread_id=$1
Avatar billede dkfire Nybegynder
10. juli 2008 - 22:46 #12
Jeg vil nok placere din .htaccess fil i din rod mappe, altså enten localhost eller hvis det er carfun.

Så kan du vælge at tilføje
RewriteBase /

så det bliver til hvis du lægger den i localhost mappen:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^/carfun/forum/kategori/traad/([0-9]+)/$ /carfun/forum/kategori/traad/index.php?thread_id=$1 [L]

ellers vil dette måske virke hvis du ligger den i traad mappen:
RewriteEngine on
RewriteBase /carfun/forum/kategori/traad/
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^/([0-9]+)/$ /index.php?thread_id=$1 [L]
Avatar billede dkfire Nybegynder
10. juli 2008 - 22:50 #13
Og lige en rettelse, det skal være
RewriteCond %{REQUEST_URI} -f
Avatar billede dkfire Nybegynder
10. juli 2008 - 23:16 #14
Avatar billede mrfunder Nybegynder
10. juli 2008 - 23:16 #15
Begge eksempler giver mig blot:

Not Found

The requested URL /carfun/forum/kategori/traad/30/ was not found on this server.


Og et udpluk fra apache log:

[Thu Jul 10 23:15:01 2008] [error] [client 127.0.0.1] File does not exist: C:/SRV/wamp/www/carfun/forum/kategori/traad/30
Avatar billede dkfire Nybegynder
10. juli 2008 - 23:19 #16
virker ikke som om du enten ikke ligger din .htaccess fil rigtig eller at din server har registreret mod_rewrite
Avatar billede mrfunder Nybegynder
11. juli 2008 - 11:09 #17
Jeg skulle ikke mene det er så svært at placere en fil i en overordnet mappe :-(

Endvidere er mod_rewrite sat til, og dette bekræftes af php info
Avatar billede dkfire Nybegynder
11. juli 2008 - 11:46 #18
Prøv i at skrive i den .htaccess fil som ligger i traad mappen:

RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^([0-9]+)/ /index.php?thread_id=$1 [L]
RewriteRule ^([0-9]+) /index.php?thread_id=$1 [L]

Eller
RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteRule ([0-9]+)/ /index.php?thread_id=$1 [L]
RewriteRule ([0-9]+) /index.php?thread_id=$1 [L]
Avatar billede mrfunder Nybegynder
11. juli 2008 - 11:52 #19
Hvor mærkeligt det end lyder, så får jeg nu en phpinfo side- den allerførste side på min server i root dir er phpinfo.
Avatar billede mrfunder Nybegynder
11. juli 2008 - 11:52 #20
Men det er fremskridt :- ) nu kan den da finde noget indhold
Avatar billede dkfire Nybegynder
11. juli 2008 - 12:27 #21
Vi skal nok komme frem til noget.
Egentlig er det lidt ærgerligt at jeg ikke kan teste noget pt.

prøv så i stedet med:

RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteRule ([0-9]+)/ index.php?thread_id=$1 [L]
RewriteRule ([0-9]+) index.php?thread_id=$1 [L]
Avatar billede mrfunder Nybegynder
11. juli 2008 - 12:30 #22
og bingo! der var bid :)

Jeg takker utroligt mange gange fordi du har villet bruge tiden- smid et svar :)
Avatar billede mrfunder Nybegynder
11. juli 2008 - 12:37 #23
Nu er det ikk for at være bøvlet :)

Men uanset hvad man skriver i url blot man tilføjer /$id/ bagefter, så åbner den en forum tråd- kan dette laves anderledes?
Avatar billede mrfunder Nybegynder
11. juli 2008 - 12:39 #24
RewriteRule ^forum/kategori/traad/([0-9]+) forum/kategori/traad/index.php?thread_id=$1 [L]

det fiksede jeg selv :- )


Jeg taker endnu en gang! smid et svar :D
Avatar billede dkfire Nybegynder
11. juli 2008 - 12:58 #25
Jeg smider et svar :-)

Fejlen fra starten har nok været den første / før index.php.
Avatar billede mrfunder Nybegynder
11. juli 2008 - 13:06 #26
Ja det kan jeg forestille mig.. den har vel så taget /localhost eller noget først
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