Ik heb een probleem met mijn htaccess bestand.
Ik heb de volgende regel in het bestand :
RewriteRule vakantie/(.*)/(.*)/(.*).html reis3.php?land=$1&plaats=$2&hotel=$3
Dit werkt goed als alle 3 de parameters ingevuld zijn.
Echter wanneer de plaats niet ingevuld is dan loopt het fout, bijv.
http://www.test.be/vakantie/zuid-afrika//zuid-afrika-familiereis.html
Bij deze link krijg ik een page-not-found. De matching werkt hier dus niet.
Als ik bij de plaats gewoon iets willekeurig invul, dan werkt het wel.
http://www.test.be/vakantie/zuid-afrika/test/zuid-afrika-familiereis.html
Er is dus geen match wanneer er geen plaats ingevuld is. Ik dacht nochtans dat de (.* ) stond voor geen of meerder karakters.
Ik dacht dit op te lossen door een extra regel te definiëren:
RewriteRule vakantie/(.*)//(.*).html reis3.php?land=$1&plaats=$2&hotel=$3
Maar dit werkt niet. Iemand een idee wat hiervoor de oplossing is?
- htacces probleem
-
13-04-2010, 13:29 #1
- Berichten
- 49
- Lid sinds
- 16 Jaar
htacces probleem
-
-
14-04-2010, 07:18 #2
- Berichten
- 14
- Lid sinds
- 15 Jaar
Dan moet je onder die eerste rewriteRule volgens mij hem nog eens plaatsen maar dan maar met 2 of minder parameters.
Bijvoorbeeld:
RewriteRule vakantie/(.*)/(.*)/(.*).html reis3.php?land=$1&plaats=$2&hotel=$3
RewriteRule vakantie/(.*)/(.*).html reis3.php?land=$1&plaats=$2
Maar wat jij volgens mij bedoeld is dat je dan niet hotel maar land eruit wil?
Maar dat kan ook volgens mij op deze manier:
RewriteRule vakantie/(.*)/(.*).html reis3.php?land=$1&hotel=$3
Je zal dus voor elke andere parameter een nieuwe rewriteRule moeten aan maken.
Hopelijk ben je hierdoor geholpen ;)
-
14-04-2010, 07:47 #3
- Berichten
- 1.053
- Lid sinds
- 17 Jaar
Of gewoon
Code:RewriteRule ^vakantie/(.+)\.html$ reis3.php?bestemming=$1
-
14-04-2010, 08:11 #4
- Berichten
- 49
- Lid sinds
- 16 Jaar
Het is inderdaad de 2de parameter (plaats) die leeg is.
RewriteRule vakantie/(.*)/(.*).html reis3.php?land=$1&hotel=$3
Met deze regel kent hij echter parameter 3 niet, want je hebt maar 2 parameters. Hotel is dus ook niet ingevuld.
Zelf exploden zal wel kunnen inderdaad, maar ik zou als het kan toch gebruik willen maken van de mogelijkheden van htaccess.
-
14-04-2010, 08:48 #5
- Berichten
- 1.053
- Lid sinds
- 17 Jaar
vakantie/(.*)/(.*).html
Waarom is dit geen land&plaats? Dat is naar mijn idee veel logischer in de structuur die je nu gebruikt.
Wat gebeurt er in bovenstaande als een hotel hetzelfde is genoemd als een plaats (en het 2e argument wordt weggelaten?
Mocht je de 2e parameter optioneel willen maken, dan is het logischer om bijv. een wildcard in te voeren (moet je wel handmatig afhandelen):
/nederland/-/tulip
Of gewoon de structuur omgooien
/nederland/tulip/rotterdam
/nederland/tulip
En wat Ruben zegt zou ook gewoon werken. Als er geen 3 argumenten worden gematched, pak dan de rewriterule voor 2 argumenten.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic