mboost-dp1

Hjælp til mod_rewrite


Gå til bund
Gravatar #1 - Tang
13. apr. 2010 13:01
Jeg forsøger at tilpasse min .htaccess-fil, så URL'en på min hjemmeside bliver lidt kønnere. Jeg er dog stødt ind i nogle problemer og da alle guides på internettet bruger det samme eksempel er det lidt svært at regne ud, hvad fejlen er...

.htaccess

AddDefaultCharset UTF-8

RewriteEngine On
RewriteBase /
RewriteRule ^/([0-9]+)/$ index.php?pageid=$1


index.php

$page_id = $_GET['pageid'];
// Og så videre...


mod_rewrite er så vidt jeg ved, stået til på serveren.
Gravatar #2 - D_V
13. apr. 2010 14:58
Og hvad er fejlen så ????

Du viser jo kun hvad du har sat op...

Kan så ikke forstå hvorfor du bruger rewritebase.... den er total meningsløs, og tror faktisk kun den gør det værre.. da den vil fjerne start / i din request.

Så enten skal du fjerne RewriteBase linien,
eller ændre din rule til
RewriteRule ^([0-9]+)/$ index.php?pageid=$1

Ville dog klart vælge at fjerne rewritebase
Gravatar #3 - Tang
13. apr. 2010 17:22
Tak for svaret...

Jeg får dog stadig en "Object not found!"-fejl, når jeg forsøger at kalde siden med fx:
domain.dk/hephey/
Gravatar #4 - Frandsen
13. apr. 2010 17:39
"hephey" er jo ikke et gyldigt input. Du tillader kun variabler der indeholder tallene 0-9 og intet andet. Du skal udbygge din bracket med a-z.
Gravatar #5 - Tang
13. apr. 2010 18:15
#4

Det kan du jo have ret i. Der havde jeg ikke lige tænkt mig om.

UPDATE:
Det gør dog ingen forskel. Jeg får stadig en "Object not found!"-fejl.
Gravatar #6 - Daniel-Dane
13. apr. 2010 18:21
#5
Må vi se den nye regex?
Gravatar #7 - Tang
13. apr. 2010 18:28
RewriteRule ^([a-z]+)/$ index.php?pageid=$1
Gravatar #8 - Mamad (moveax1ret)
13. apr. 2010 18:38
hvad svarer en

index.php?pageid=hephey

?
Gravatar #9 - Tang
13. apr. 2010 19:05
index.php får rigtigt nok fat i "hephey" med

index.php?pageid=hephey
Gravatar #10 - røvskæg
13. apr. 2010 19:38
Jeg tror du skal prøve at skrive lidt mere om dit problem.

Prøv evt. til at starte emn at droppe den sidste /

således at

domain.dk/hephey

skulle få fat i index.php?pageid=heypay

Er du sikker på at rewrite er tilladt og virker?
lav en phpinfo() i din index.php.
Gravatar #11 - Tang
14. apr. 2010 07:30
Jeg mener at problemet burde fremgå af mine tidligere indlæg. Men skriver alligevel lidt mere.

mod_rewrite fremgår tilsyneladende ikke af phpinfo, hvilket undrer mig, fordi jeg allerede har en WordPress-installation kørende (som bruger rewriting i .htaccess) på samme server.

På den side jeg forsøger at forbedre, har jeg også noget rewriting i .htaccess (Se eksempel nedenfor)


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>


Jeg tænker at det måske kan være <IfModule mod_rewrite.c>, der gør forskellen?
Gravatar #12 - Daniel-Dane
14. apr. 2010 07:59
Er det allerede www-root? Har du prøvet at fjerne første linje (jeg bruger den i hvert fald ikke)?
Gravatar #13 - Tang
14. apr. 2010 14:04
#12
Koden i #11 virker også fint uden linie 1 og 6...

Jeg har nu rodet lidt med nogle mulige løsninger, uden held.

P.t. ser min (ikke fungerende) .htaccess-fil sådan ud:

AddDefaultCharset UTF-8

RewriteEngine on
RewriteRule ^/([a-z]+)/$ index.php?pageid=$1


index.php:

<?php
echo "pageid: " . $_GET['pageid'];
?>
Gravatar #14 - Josso
14. apr. 2010 14:30
Prøv dette:


RewriteEngine On
RewriteRule ^(.+)$ /index.php?pageid=$1 [NC]
Gravatar #15 - Tang
14. apr. 2010 15:08
Virker stadig ikke

http://test.quille.dk/
Gravatar #16 - røvskæg
14. apr. 2010 15:22
Prøv lige at tilføj en phpinfo();
Gravatar #17 - Tang
14. apr. 2010 15:31
http://test.quille.dk/phpinfo.php

Som jeg nævner i #11, så fremgår det ikke af phpinfo at mod_rewrite er slået til. Jeg har andre hjemmesider liggende på serveren, disse bruger også en form for rewriting (#11), så det undrer mig at det ikke virker i dette tilfælde.
Gravatar #18 - Daniel-Dane
14. apr. 2010 16:06
Jeg bruger selv:
# Faux directories
RewriteEngine on
RewriteBase /
RewriteRule ^(test(/)?)$ index.php?page=$1 [L,QSA]

Den er ikke dynamisk, men denne stump kode burde altså virke.

Jeg kan se, at den er installeret som CGI, men det burde ikke gøre nogen forskel.
Gravatar #19 - Josso
14. apr. 2010 17:46
#17

Jeg får en 404-header sendt i hovedet, som betyder at det Mod rewrite du har, ikke er aktiveret på nogen måde.

Det kan godt være at din wordpress installation kan lave noget, men det er altså ikke aktiveret på dit subdomæne.
Gravatar #20 - røvskæg
14. apr. 2010 18:01
Prøv at lav en phpinfo() fra et dir, hvor mod_rewrite virker, bare så du selv kan sammenligne.
Gravatar #21 - røvskæg
14. apr. 2010 18:05
Er du sikker på at .htaccess-filen hedder det rigtige og har rigtige rettigheder. - Sammenlign med den du siger der virker.
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.

Opret Bruger Login