webForumDet fria alternativet

Mod_rewrite problem

9 svar · 898 visningar · startad av nighteye

nighteyeMedlem sedan sep. 200260 inlägg
#1

Har fått en .htaccess fil som legat på en Linux server och kör rewrite regler för sökvägar och filnamn. Sajten skall flyttas till en Windows server och det fungerar så klart inte, gissar på att det är fel på sökvägar eller liknande i .htaccess filen, men jag har inte direkt någon koll på hur sådana här fungerar. Någon som kan ta en titt och se i fall de ser något direkt som skulle vara fel eller som gör att Windows inte vill lira med filen?

RewriteEngine On

php_flag allow_url_fopen On
php_value session.gc_maxlifetime 7200
php_value upload_max_filesize 1200M
php_value max_input_time 18000
php_value post_max_size 1300M
php_flag short_open_tag off

#WWW

RewriteRule ^([A-Z_]+)$ $1/ [NC,L]
RewriteRule ^([A-Z_]+)/([A-Z_]+)$ $1/$2/ [NC,L]

RewriteRule ^([^/]+)/$ index.php?p=$1 [NC,L]
RewriteRule ^([A-Z]+)/([A-Z]+)/([0-9]+)$ index.php?p=$1&do=$2&id=$3 [NC,L]
RewriteRule ^([A-Z]+)/([A-Z]+)/$ index.php?p=$1&do=$2 [NC,L]
RewriteRule ^([A-Z]+)/([0-9]+)$ index.php?p=$1&id=$2 [NC,L]
RewriteRule ^([A-Z]+)/([A-Z]+)/([A-Z]+)/$ index.php?p=$1&do=$2&value=$3 [NC,L]

RewriteRule ^player/songList.xml$ /player/songList.php [NC,L]
colioneMedlem sedan juni 20014 421 inlägg
#2

Hur är miljön uppsatt? Samma php-version? Samma apache-version? Samma mod_rewrite-version?

Får du bara ett 500 fel? eller får du nåt mer utförligt? Har du provat slå på rewritelog? [1] Har du provat loggat vad du får in i index.php?

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog

The_HulkMedlem sedan juni 20031 837 inlägg
#3

Har du kollat så mod_rewrite verkligen är aktiverat på windows-servern?

nighteyeMedlem sedan sep. 200260 inlägg
#4

Miljön är ungefär samma. PHP5 och Apache 2, precis som på Linux servern. Ingen aning om det är samma mod_rewrite, men det borde inte påverka det så mycket tycker man?

Jag får inga 500-fel utan 404, sidan kan inte hittas. Känns nästan som att mod_rewrite inte funkar alls, fast att det är aktiverat i httpd.conf på Windows servern, finns det nåt enkelt sätt att se att det funkar?

colioneMedlem sedan juni 20014 421 inlägg
#5

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* /rewritetest.php [R=301,L]
</IfModule>

Du kan ven göra en phpinfo och kolla på loaded modules.

nighteyeMedlem sedan sep. 200260 inlägg
#6

Enligt phpinfo så är mod_rewrite laddad. Har provat att köra din kod i .htaccess filen och inget händer. Kan det vara som så att Apache i Windows inte läser av filen? Trodde sånt skedde automatiskt, men jag kanske har fel. Har lagt filen i roten av www-katalogen, borde väl funka?

Update: Ändrade en sökväg i httpd.conf och nu verkar det som att den läser av .htaccess filen.

Tyvärr så funkar fortfarande inte koden högst upp, den hittar inte sökvägen. Vet inte vad som är fel. Colione's rewrite test funkar däremot som den ska. Kan det ha något med sökvägarna i Linux kontra Windows som gör att den andra inte fungerar? Slash / backslash?

colioneMedlem sedan juni 20014 421 inlägg
#7

Så hur der din RewriteLog ut som jag bad dig skapa? :)

Dubbelkolla ven så att du har AllowOverride All satt i directorydirektivet för mappen (det llåter som att du redan har det dock.)

nighteyeMedlem sedan sep. 200260 inlägg
#8

Allt har löst sig nu. Det visade sig vara ett fel i httpd.conf som gjorde att filen inte lästes korrekt. Tack för alla svar!

colioneMedlem sedan juni 20014 421 inlägg
#9

Vad var felet då?

nighteyeMedlem sedan sep. 200260 inlägg
#10

Allow Override hade fel inställningar, vilket gjorde att .htaccess filen inte lästes korrekt.

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)