Avatar billede noem Nybegynder
29. januar 2004 - 14:32 Der er 35 kommentarer

.httaccess og Rewrite

jeg har et lille problem...

jeg vil gerne have at den laver /boink/ om til /?side=boink
(så jeg kan skjule jeg bruge dynamiske navne)...
Efter hvad jeg har kunne læse mig til rundt omkring på nettet skal det se noglelunde således ud:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^/$ /?side=$1

problemet er bare at det ikke virker :/

nogle der ved hvordan dette eller laves ?
Avatar billede htm Nybegynder
29. januar 2004 - 15:10 #1
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)/$ /?side=$1

Din tjekker om url'en er / og hvis den er sender den videre til /?side=$1 men samtidig er $1 tom, da det skal være det der matcher mellem ( og ) :-)
Avatar billede noem Nybegynder
29. januar 2004 - 18:53 #2
hmm virker stadigvæk ikke :( og jeg har skrevet den direkte ind i min httpd.conf

<Directory /var/www/boink/>

AllowOverride AuthConfig

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)/$ /?side=$1

</Directory>

syntes jeg har gjort alt som der står på www.apache.com :/
Avatar billede htm Nybegynder
29. januar 2004 - 19:56 #3
Tja hvis du har gjort alt hvad der står på www.apache.com kan jeg godt forstå det er gået galt :-) Deres adresse er www.apache.org ...

Har du enablet mod_rewrite ? dvs. fjerne # foran følgende linier:

LoadModule rewrite_module modules/mod_rewrite.so
og
AddModule mod_rewrite.c

Og har du husket at genstarte apache, efter du har ændret i httpd.conf?

Står der noget i din error.log?

Hvordan tester du det? det er sådan at http://domain.dk/boink/ vil gå til http://domain.dk/?side=boink men http://domain.dk/boink vil du få en 404 fejl af, da den ikke er indbefattet af din rewrite.
Avatar billede noem Nybegynder
29. januar 2004 - 20:25 #4
ja apache.org self. :)...
så mod_rewrite er tilføjet, og jeg intaster det rigtigt..

rewrite skulle være aktiveret på mappen /var/www/ny/

her er et udsnit fra min error.log

[Thu Jan 29 20:17:46 2004] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /etc/apache/share/magic Processing config directory: /etc/apache/conf.d Processing config file: /etc/apache/conf.d/phpmyadmin

[Thu Jan 29 20:17:46 2004] [warn] module mod_rewrite.c is already added, skipping

[Thu Jan 29 20:17:46 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80

[Thu Jan 29 20:19:55 2004] [error] [client 192.168.1.7] File does not exist: /var/www/ny/1/

men hvis jeg fx. prøver /ny/boink/ og der er en fil der hedder boink.php i mappen, viser den filen boink..
Avatar billede htm Nybegynder
29. januar 2004 - 20:30 #5
Kan du ikke lige:

1. stoppe apache.
2. slette indholdet af error.log
3. Starte apache
4. Tilgå http://domain.dk/boink
5. Tilgå http://domain.dk/boink/
6. Tilgå http://domain.dk/?side=boink

Herefter tager du din error.log og paster herind. Og fortæller også hvad der sker når du tilgår de forskellige.
Avatar billede noem Nybegynder
29. januar 2004 - 20:50 #6
de 2 første kommer den med 404 fejl og /?side=boink åbner den rigtige side..

error.log
--------
[Thu Jan 29 20:46:02 2004] [error] (2)No such file or directory: mod_mime_magic: can't read magic file /etc/apache/share/magic
Processing config directory: /etc/apache/conf.d
Processing config file: /etc/apache/conf.d/phpmyadmin

[Thu Jan 29 20:46:02 2004] [warn] module mod_rewrite.c is already added, skipping

[Thu Jan 29 20:46:02 2004] [crit] (98)Address already in use: make_sock: could not bind to port 80
Avatar billede htm Nybegynder
29. januar 2004 - 20:55 #7
Prøv lige og stop din apache og prøv og tilgå siden igen :-)

Det ser ud til at du allerede har en webserver kørende, og at din apache aldrig kommer op...
Avatar billede noem Nybegynder
29. januar 2004 - 21:04 #8
hov... efter kill / opstart af apache skete der noget..... :)


[Thu Jan 29 21:01:15 2004] [alert] [client 192.168.1.7] /var/www/ny/.htaccess: RewriteEngine not allowed here
Avatar billede htm Nybegynder
29. januar 2004 - 21:35 #9
Har du smidt rewriteengine i en .htaccess? for så er det klart, da rewriteengine ikke er tilladt med den allowoverride du har givet den! Den skal have FileInfo
Avatar billede htm Nybegynder
29. januar 2004 - 21:36 #10
AllowOverride AuthConfig FileInfo
eller
AllowOverride All
Avatar billede noem Nybegynder
29. januar 2004 - 21:46 #11
ok, nu er der et lille hul igennem, hvis jeg requester /boink og filen boink.php ikke findes hopper den rigtigt nok til /?side=boink men hvis jeg requester /foo/ og filen /foo.php findes hopper den direkte til /foo.php,,


btw. undskyld alle de dumme spørgsmål, jeg har aldrig rodet med .htaccess før :(
Avatar billede htm Nybegynder
29. januar 2004 - 22:00 #12
skriver du /foo.php eller /foo/ ??

Det er i orden at spørge, hvis man ikke spørger lærer man hellere ikke noget...
Avatar billede htm Nybegynder
29. januar 2004 - 22:03 #13
Men kan ikke helt forstå hvorfor den skal gå direkte til filen, du forespørger jo ikke på den... Men ellers gør din
RewriteCond %{REQUEST_FILENAME} !-F
at hvis det forespurgte ikke findes via et subreuest - bliver rewriterule eksekveret.
Avatar billede htm Nybegynder
29. januar 2004 - 22:09 #14
Men du kan jo også læse lidt om mod_rewrite på: http://httpd.apache.org/docs/mod/mod_rewrite.html
Avatar billede noem Nybegynder
29. januar 2004 - 22:11 #15
hmm altså hvis jeg skriver www.domæne.dk/foo eller www.domæne.dk/foo/ og filen www.domæne.dk/foo.php findes, bliver foo.php vist.. ( måske det er et andet der er forkert i min httpd.conf )
tror foresten også den gjorde dette før jeg roede med .htaccess

min configfil ligger her:
http://80.196.128.194/httpd.conf
Avatar billede htm Nybegynder
29. januar 2004 - 22:18 #16
Kan du ikke også lige linke til modules.conf og conf.d

men kan du ikke prøve og smide rewritelog på med rewriteloglevel 9 ?
Avatar billede htm Nybegynder
29. januar 2004 - 22:18 #17
Og hvad står der helt nøjagtigt i .htaccess ??
Avatar billede noem Nybegynder
29. januar 2004 - 22:30 #18
her:

http://80.196.128.194/modules.conf
http://80.196.128.194/rewrite.log
http://80.196.128.194/conf.d

jeg bliver desvære nød til at smutte iseng nu, kigger lige i morgen tideligt...  men tak for hjælpen indtil videre :)
Avatar billede htm Nybegynder
29. januar 2004 - 22:45 #19
Der er vist rod i din php... du indsætter php flere gange, både i httpd.conf og i conf.d. Prøv og slet det fra httpd.conf

Det ligner også du har haft php3 kørende på den engang?

Men bortset fra det er der ikke noget der indikerer at du skulle kunne bliver videresendt.

Sæt rewritelog til 9 og forespørg på  www.domæne.dk/foo og  www.domæne.dk/foo/ hvor www.domæne.dk/foo.php  eksisterer
Avatar billede noem Nybegynder
30. januar 2004 - 23:51 #20
sådan, undskyld ventetid, ny har jeg lavet de forespørgelser

min .htaccess ser sådan ud:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^(.*)/$ /ny/?side=$1

og ja jeg har haft php3 kørende..
Avatar billede noem Nybegynder
30. januar 2004 - 23:53 #21
btw. er mappen jeg har forespurgt på anbefal/
Avatar billede htm Nybegynder
01. februar 2004 - 17:56 #22
Og hvad står der så i din error.log? og hvad står der i din rewrite.log?

Du har selvfølgelig sat rewriteloglevel til 9 ikke?
Avatar billede noem Nybegynder
01. februar 2004 - 19:58 #23
tror jeg nok... jeg har skrevet følgende i min httpd.conf

rewritelog /var/log/apache/rewritelog1.log
rewriteloglevel 9

filerne ligger her:
http://80.196.128.194/error.log
http://80.196.128.194/rewrite.log
Avatar billede htm Nybegynder
01. februar 2004 - 20:01 #24
Du har da ikke forespurgt på de ting jeg skrev i de logs?
Avatar billede noem Nybegynder
02. februar 2004 - 12:51 #25
Avatar billede htm Nybegynder
02. februar 2004 - 20:20 #26
Du skal for det første have fjernet 3. nederste linie i din httpd.conf
AddModule mod_rewrite.c

Så fjern alle relationer til php3 fra conf.d

        <IfModule mod_php3.c>
            AddType application/x-httpd-php3 .php

            php3_magic_quotes_gpc Off
            php3_track_vars On
            php3_include_path .
        </IfModule>

derudover skal din rewritebase laves om til
RewriteBase /ny/ - da det er dette bib du går ud fra.

Og har du så ellers andet stående i .htaccess end din rewrite?
Avatar billede noem Nybegynder
03. februar 2004 - 15:54 #27
done...

hmm når du skriver conf.d mener du conf.d/phpmyadmin ikke ? (den eneste fil jeg har)

nej der står ikke andet i mon .htaccess.

min .htaccess ligger i /ny/ skal Rewritebasen så stadigvæk hedde /ny/ ?
Avatar billede htm Nybegynder
03. februar 2004 - 16:30 #28
/etc/apache/conf.d = http://80.196.128.194/conf.d = den jeg mener :-)

ja når den ligger i /ny skal rewritebase være /ny/
Avatar billede noem Nybegynder
03. februar 2004 - 16:45 #29
http://80.196.128.194/conf.d er et link til /etc/apache/conf.d/phpmyadmin/
Avatar billede noem Nybegynder
03. februar 2004 - 16:46 #30
uden / efter phpmyadmin selvfølgelig
Avatar billede htm Nybegynder
03. februar 2004 - 17:54 #31
Har du en fil der hedder /etc/apache/conf.d ?? altså som fil og ikke med / bagefter? Det er nemlig denne der bliver inkluderet i din apache
Avatar billede noem Nybegynder
03. februar 2004 - 18:00 #32
nej den fil har jeg ikke
Avatar billede htm Nybegynder
03. februar 2004 - 18:26 #33
jeg kan ikke overskue hvad der sker og ikke sker. Jeg må melde pas herfra.

Men jeg vil næsten anbefale dig at recompilere apache og php, eller hvis det er pakker så fjern og installer igen.

Husk hvis du compilerer at du skal have --enable-module=rewrite på din apache.
Avatar billede noem Nybegynder
03. februar 2004 - 18:35 #34
ok, men du skal have tak for hjælpen. tror jeg vil prøve at recompile lortet og se om det hjælper..
Avatar billede horsmark Nybegynder
20. maj 2005 - 15:16 #35
så vidt jeg ved er FileInfo den mod_rewrite bruger derfor:

<Directory /var/www/boink/>
AllowOverride AuthConfig FileInfo
</Directory>

...eller den total usikre

<Directory /var/www/boink/>
AllowOverride All
</Directory>
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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

IT-JOB

Netcompany A/S

IT Manager

Shure Scandinavia A/S

Senior DevOps Developer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

EXCHANGE Driftskonsulenter til Flyvestation Karup