.htaccess-problemen

Ik heb een pagina die twee dingen doet:

When users click on this link: http://www.example.com/whatever_200/index.html/?id=4 it is actually processed by http://www.example.com/search/profile-condo.php?id=4

Ik wil echter ook het volgende doen voor mensen in Brazilië www.example.com/br/whatever_200/index.html/?id=4 www.example.com/br/search/profile-condo.php?id=4

Het volgende werkt uitstekend voor de Engelse versie:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

Maar als ik eraan toevoeg

RewriteRule ^(.*)/br/^(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

Het werkt niet.

Wat doe ik verkeerd?

0

1 antwoord

Er zijn drie problemen met uw regels.

Allereerst de regelvolgorde. De eerste regel komt overeen met alles dat eindigt op /index.html en het voert de omleiding uit. Het is (correct) gemarkeerd als de laatste regel (de L -markering). Daarom zal de tweede regel nooit worden uitgevoerd. Als u toevoegt voeg de regel br vóór toe aan de algemene regel, dan wordt deze eerst getest en als deze overeenkomt, vindt de omleiding plaats.

Het tweede probleem is de reguliere expressie op uw tweede regel. Het bevat een circumflex ^ halverwege de uitdrukking. De circumflex betekent start van tekenreeks , die uiteraard nooit voorkomt in het midden van de tekenreeks. Als je de circumflex verwijdert, repareer je dat.

Een derde probleem is dat je tekens toestaat vóór het /br/ deel van je url (door (. *) in je expressie te hebben. Volgens jouw beschrijving, heb dit niet echt nodig.

Samenvatten:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/br/(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
1
toegevoegd
Graag gedaan ;-)
toegevoegd de auteur Ondergetekende, de bron
Koert, je antwoord bracht me op het juiste pad. Hartelijk bedankt!
toegevoegd de auteur Hugo, de bron