Avatar billede starbotz Praktikant
23. maj 2006 - 12:33 Der er 7 kommentarer og
1 løsning

Problemer med mod_rewrite

Hej med jer.

Jeg har for nylig installeret MySQL (5.0.21), PHP (5.1.4) og Apache (1.3.29). Jeg har ikke rodet så meget med det endnu, men jeg skulle lige prøve at se på et PHP script til news publishing (scriptet hedder sNews og findes i en version 1.4 - findes på http://www.solucija.com/home/snews/ hvis nogen vil teste).

Så vidt jeg kan se i den .htaccess, som er med når man downloader scriptet, bruges der rewrite af url'er fra fx

http://www.mysite.com/index.php?category=login

til

http://www.mysite.com/snews/login/

hvilket er fint nok - grunden til, at jeg vil bruge PHP og MySQL er at jeg vil lave et databasestyret website som bruger dynamiske sider eller hvad man skal kalde det.

Jeg kører på min PC med Windows XP Pro, så jeg ved ikke om der gælder nogle andre regler for opsætning af mod_rewrite end hvis man fx kører på Unix, men det virker ihvertfald ikke.

Jeg kan godt få forsiden siden frem på

http://localhost/snews/index.php

hvor det er meningen, at nyhederne skal vises. På forsiden er der et link "Login", som skal redirecte til en login side. Der er også andre links, og lige meget hvilket link jeg klikker på får jeg en HTTP 404 - Filen blev ikke fundet.

Kan nogen fortælle mig hvad jeg skal gøre?

Jeg har læst masser af andre indlæg både her på Ekperten og andre steder, og endda også på sNews' eget forum, men der er ikke rigtig noget der duer.

Jeg HAR lavet en phpinfo og har kigget efter en liste over Apache loadede moduler, men jeg synes ikke jeg kan se noget. Hvis man tekstsøger efter "mod_rewrite" finder man ingenting.

Og mod_rewrite modulet ligger her:
C:\Programmer\Apache Group\Apache\modules\mod_rewrite.so

så det skulle jo gerne kunne findes.

Jeg har (efter at have læst mange indlæg) i min httpd.conf fjernet # foran linierne

LoadModule rewrite_module modules/mod_rewrite.so

og

AddModule mod_rewrite.c

som - efter hvad jeg har forstået - burde gøre tricket.

Men det gør det altså ikke.
Har nogen den endegyldige løsning ville jeg blive MEGET glad :oD
Avatar billede starbotz Praktikant
23. maj 2006 - 12:48 #1
Eller hedder mod_rewrite modulet i virkeligheden

mod_rewrite.c ?

Det ser lidt sådan ud, når man kigger i Apache dokumentationen. Der står ihvertfald følgende i afsnittet "Module mod_rewrite - URL Rewriting Engine":

Status: Extension
Source File: mod_rewrite.c
Module Identifier: rewrite_module
Compatibility: Available in Apache 1.2 and later.

Jeg har lige søgt på hele min harddisk efter filen mod_rewrite.c, hvor den ikke finder noget - og søgningen finder naturligvis mod_rewrite.so

Så er det fordi jeg ganske simpelt ikke har dette modul?
Avatar billede starbotz Praktikant
23. maj 2006 - 13:08 #2
Eller skal der simpelthen findes en dll-fil til mod_rewrite?
Jeg sidder lige og kigger i min php.ini fil, mens jeg læser i install.txt i mit PHP directory og der står følgende:

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
;  extension=modulename.extension
;
; For example, on Windows:
;
;  extension=msql.dll
;
; ... or under UNIX:
;
;  extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here.  Specify the location of the extension with the
; extension_dir directive above.

Jeg kører som sagt på Windows platform og ikke Unix.
Avatar billede starbotz Praktikant
23. maj 2006 - 19:41 #3
Anyone?
Avatar billede showsource Seniormester
23. maj 2006 - 20:56 #4
Du har godt sat mod_rewrite muligheden "igang" ved at fjerne de omtalte # i din conf.
Men pr. default, tillader Apache ikke brugen af .htaccess

så hvis du lægger flg. ind i din conf, ligeefter den Directoryblok for dit "Documentroot"

<Directory "C:/Apache/htdocs/snews">
#C:/Apache/htdocs skal jo rettes så det passer til din comp.

    AllowOverride All

</Directory>

tillader du brugen af .htaccess, (efter genstart af Apache)
Avatar billede starbotz Praktikant
24. maj 2006 - 08:44 #5
Hvordan helt præcist?
Nedenfor en kopi af den del af httpd.conf'en.
Hvis du gider kopiere den og indsætte det du mener der skal indsættes på den korrekte plads. Better be safe than sorry :o)

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Programmer/Apache Group/Apache/htdocs"

#
# Each directory to which Apache has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# permissions. 
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

#
Avatar billede starbotz Praktikant
24. maj 2006 - 08:58 #6
Hehehehe!!!

showsource > Det virker sgu da!

Jeg indsatte dit forslag således:

#
DocumentRoot "C:/Programmer/Apache Group/Apache/htdocs"

#
# Each directory to which Apache has access, can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# permissions. 
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory "C:/Programmer/Apache Group/Apache/htdocs/snews">
    AllowOverride All
</Directory>

#

Så genstartede jeg Apache og voila!
Smider du lige et svar, så er der point til dig :oD
Avatar billede showsource Seniormester
24. maj 2006 - 19:15 #7
jow da!

Og b.t.w.
Ved at bruge " omkring stien til dir kan du bruge mellemrum i stien.
Samme gælder også hvis du vil definere en sti i en .htaccess

Altså,
"C:/Programmer/Apache Group/Apache/htdocs"
er ok, men ikke
C:/Programmer/Apache Group/Apache/htdocs
Avatar billede starbotz Praktikant
25. maj 2006 - 09:23 #8
That's affirmative :o)
Mange tak for hjælpen!
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

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