webForumDet fria alternativet

Problem .htaccess redirect

7 svar · 1 643 visningar · startad av Travoni

TravoniMedlem sedan okt. 20041 538 inlägg
#1

Jag får inte den fetade redirecten att fungera. Vad kan vara fel?

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
[B]RewriteRule ^(.*)344$ http://www.hemsidan.se/ny-sida-346[/B] [L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
TravoniMedlem sedan okt. 20041 538 inlägg
#2

Alltså sidan med querysträngen ?p=344, skall redirectas till denna: http://www.hemsidan.se/ny-sida-346

(Obs! Det är en annan domänadress)

TravoniMedlem sedan okt. 20041 538 inlägg
#3

Jag märker att om jag slår in adressen ex. http://www.hemsidan.se/vad-som-helst-344 så blir jag redirectad till http://www.hemsidan.se/ny-sida-346 men inte om det är en querystring...

nitro2k01Medlem sedan aug. 20037 630 inlägg
#4

RewriteRule i sig matchar bara URL-delen. För att matcha något annat (som cookies, type av request eller som i detta fall queystringen) måste du ta hjälp av en RewriteCond. RewriteRule .* matchar vadsomhelst. (Den egentliga matchningen sker ju på raden innan.)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} p=344
RewriteRule .* [url]http://www.hemsidan.se/ny-sida-346[/url] [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
TravoniMedlem sedan okt. 20041 538 inlägg
#5

Funkar nästan...
Nu blir man omdirigerad till: http://www.hemsidan.se/ny-sida-346?p=344

Vilket såklart blir kajko.

TravoniMedlem sedan okt. 20041 538 inlägg
#6

Det verkar fungera om jag vänder på det:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{QUERY_STRING} p=344
RewriteRule .* http://www.hemsidan.se/ny-sida-346 [L,R=301]

</IfModule>
# END WordPress
TravoniMedlem sedan okt. 20041 538 inlägg
#7

Eller skall det spela ngn roll?

TravoniMedlem sedan okt. 20041 538 inlägg
#8

Man lägger till ett frågetecken i slutet, det strippar bort QS.

RewriteCond %{QUERY_STRING} p=344
RewriteRule .* http://www.hemsidan.se/ny-sida-346? [L,R=301]
Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb