301 redirect problem in htaccess
Ik heb een 301 redirect probleem.
Mijn .htaccess ziet er als volgt uit (deze .htaccess file gebruik ik overigens al jaren, dus misschien issie verouderd?):
butt staat voor de 1e variabele.
vara staat voor de 2e variabele en varb staat voor de 3e variabele.
Onder de rewriteRule heb ik een 301 redirect staan.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
php_value register_globals on
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domeinnaam\.nl [NC]
RewriteRule ^(.*) http://www.domeinnaam.nl/$1 [l,R=301]
ErrorDocument 404 /index.php?butt=404
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?butt=$1&vara=$2&varb=$3 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?butt=$1&vara=$2 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2 [NC]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?butt=$1 [NC]
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?butt=$1 [NC]
Redirect 301 /demapnaam http://www.domeinnaam.nl/naar/demapnaam
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domeinnaam\.nl [NC]
RewriteRule ^(.*) http://www.domeinnaam.nl/$1 [l,R=301]
ErrorDocument 404 /index.php?butt=404
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?butt=$1&vara=$2&varb=$3 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?butt=$1&vara=$2 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2 [NC]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?butt=$1 [NC]
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?butt=$1 [NC]
Redirect 301 /demapnaam http://www.domeinnaam.nl/naar/demapnaam
Via internet heb ik al verschillende dingen geprobeerd om het op te lossen.
Maar de redirect gaat goed. Ik kon namelijk uit op de volgende URL:
http://www.domeinnaam.nl/naar/demapnaam?butt=demapnaam
De redirect gaat dus wel naar de nieuwe submap "naar", maar zet er vervolgens ?butt=demapnaam achter...
De juiste url moet worden: http://www.domeinnaam.nl/naar/demapnaam
Het is mij een raadsel en hoop dat iemand hier begrijpt waarom dit gebeurd en hoe ik dit op kan lossen.
wat als je ipv [NC] [NC,L] gebruikt?
Als ik alleen de [NC] flags vervang achter de RewriteRule met de butt, vara en varb variabelen dan blijf ik de onjuiste url zien: http://www.domeinnaam.nl/naar/demapnaam?butt=demapnaam
Het vervangen van de [NC] in de [NC,L] werkt dus helaas niet.
a) te kiezen voor een / aan het eind (of juist niet) en daar naar te redirecten
b) of ipv (.....)/? en daarnaar (.....)? te kiezen voor
(......)?/? waarbij je dus zowel voor het stuk tussen () als de / aangeeft dat het optioneel is.
Scheelt het als je de de 301 regel boven de rewriterules zet?
[NC] zou je ook nog door [L] kunnen vervangen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<IfModule mod_rewrite.c>
Redirect 301 /demapnaam http://www.domeinnaam.nl/naar/demapnaam
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domeinnaam\.nl [NC]
RewriteRule ^(.*) http://www.domeinnaam.nl/$1 [l,R=301]
ErrorDocument 404 /index.php?butt=404
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3&varc=$4 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?butt=$1 [L]
</IfModule>
Redirect 301 /demapnaam http://www.domeinnaam.nl/naar/demapnaam
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domeinnaam\.nl [NC]
RewriteRule ^(.*) http://www.domeinnaam.nl/$1 [l,R=301]
ErrorDocument 404 /index.php?butt=404
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3&varc=$4 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2&varb=$3 [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)?$ index.php?butt=$1&vara=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)?$ index.php?butt=$1 [L]
</IfModule>
Heb de Redirect 301 ook op andere posities gezet zoals direct onder de RewriteEngine On, en direct onder de domeinnaam RewriteRule. Maar dat maakt allemaal geen verschil, blijf de foute redirect/url behouden...
Toevoeging op 24/05/2014 10:38:07:
Helaas heb ik het probleem nog steeds niet kunnen oplossen.
Is er verder echt niemand die weet wat ik moet doen om het probleem op te lossen?
Ik ben nu 3 dagen verder en heb nog geen reactie of verdere support gekregen op mijn bovenstaande probleem.
Graag breng ik mijn probleem daarom opnieuw onder de aandacht in de hoop dat iemand mij toch nog verder kan helpen.
Graag hoor ik van jullie :)