Beste SDers,
In verband met het uitbreiden van één van mijn websites wil ik het aantal php bestanden terugbrengen aan de hand van rewriterules. Op dit moment heb ik voor elke categorie een apart php bestand en rewrite ik ze op de onderstaande manier.
Voor bijvoorbeeld domain.com/sport gebruik ik:
RewriteRule ^sport(.*)$ catsport.php
Nu wil ik in de toekomst zowel /sport als /sport/voetbal kunnen gebruiken waarbij alle categorieën dynamisch zijn. Ik heb dit op de volgende manier geprobeerd.
Voor domain.com/sport, domain.com/cultuur, domain.com/geschiedenis, etc:
RewriteRule ^(.*)$ cat.php?cat1=$1
En voor domain.com/sport/voetbal, domain.com/cultuur/theater, domain.com/geschiedenis/prehistorie, etc:
RewriteRule ^(.*)/(.*)$ cats.php?cat1=$1&cat2=$2
Nu moet ik zeggen dat domain.com/sport/voetbal wel werkt maar zodra ik de rewriterule voor domain.com/sport in mijn htaccess zet, overruled die alles.
Iemand hier toevallig een oplossing voor? Bij voorbaat dank.
- htaccess probleem
-
03-02-2013, 11:07 #1
- Berichten
- 418
- Lid sinds
- 17 Jaar
htaccess probleem
-
In de schijnwerper
wegens beëindiging bedrijf beschikbaar | KofferStunt.nl DA11 - DR22Website te koopWebsite te koop DR 32 / UR 21 - 1.4K zoektermen - 626 links -184 domeinenWebsite te koopwegens beëindiging bedrijf beschikbaar | HappyHuisdier.nl DA13 - DR16Website te koopOnline platform opzetten? Snel en voordelig!Freelance / Werk -
03-02-2013, 11:56 #2
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: htaccess probleem
Wat je even snel kunt proberen is om de sport/voetbal rule boven de sport rule te zetten (langste rule eerst dus) en dan de [L] flag erachter te zetten (L = Last)
Hier staan er nog meer: http://httpd.apache.org/docs/current/rewrite/flags.html
-
03-02-2013, 12:19 #3
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
@John Timmer
Bedankt, ik heb het test maar het lijkt niet meteen vanuit de root te werken. Ik heb toen net het één en ander opgezocht over flags en kwam dit voorbeeld tegen:
RewriteRule ^tutorials/(.*)/(.*)/(.*)/$ tutorials.php?id=$1&page=$2&replies=$3 [L]
RewriteRule ^tutorials/(.*)/(.*)/$ tutorials.php?id=$1&page=$2 [L]
RewriteRule ^tutorials/(.*)/$ tutorials.php?id=$1 [L]
-
03-02-2013, 12:41 #4
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: htaccess probleem
@John Timmer
Bedankt, ik heb het test maar het lijkt niet meteen vanuit de root te werken. Ik heb toen net het één en ander opgezocht over flags en kwam dit voorbeeld tegen:
Op deze manier werkt het wel maar niet als ik tutorials/ weg haal en dus werk vanuit domain.com in plaats van domain.com/tutorials. Hij lijkt het dus anders op te pakken wanneer ik vanuit de root werk zonder een statische regel in de url.
www.domain.com/test of
www.domain.com/test/
Mogelijk moet je de / nog even weghalen zodat je iets krijgt zoals:
RewriteRule ^(.*)$ tutorials.php?id=$1 [L]
-
03-02-2013, 12:44 #5
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
@John Timmer
Ik test op dit moment met:
domain.com/test/test
RewriteRule ^(.*)/(.*)$ tutorials2.php?id=$1&id2=$2 [L]
domain.com/test
RewriteRule ^(.*)$ tutorials.php?id=$1 [L]
Ik maak nooit gebruik van / achter de url als dat niet nodig is.
-
03-02-2013, 12:53 #6
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: htaccess probleem
Dan zou het wel moeten werken eigenlijk:
Voorbeeldje:
.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^(.*)$ - [L]
RewriteCond %{REQUEST_URI} ^/.+$
RewriteRule ^(.*)/(.*)/(.*)$ index.php?a=$1&b=$2&c=$3 [L]
RewriteRule ^(.*)/(.*)$ index.php?a=$1&b=$2 [L]
RewriteRule ^(.*)$ index.php?a=$1 [L]
index.php:
<?php
echo "<pre>";
print_r($_GET);
echo "</pre>";
?>
http://www.64bitswebhosting.eu/clien...t1/test2/test3
-
03-02-2013, 13:06 #7
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
@John Timmer
Heb de fout ondertussen gevonden. De RewriteRule liep vast op een RewriteCond die erin zat als bescherming tegen hackers:
RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*)=http [NC]
Zonder de bovenstaande RewriteCond werkt hij namelijk wel.
-
03-02-2013, 13:11 #8gast16106 Guest
Re: htaccess probleem
Even een kort vraagje tussendoor aangezien ik hier gisteravond ook mee bezig ben geweest.
Als je wilt linken naar een pagina zonder extensie, dus bijv. www.voorbeeld.nl/test
Wat is dan het beste, <a href="test"> of <a href="test.php">
-
03-02-2013, 13:14 #9
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
Even een kort vraagje tussendoor aangezien ik hier gisteravond ook mee bezig ben geweest.
Als je wilt linken naar een pagina zonder extensie, dus bijv. www.voorbeeld.nl/test
Wat is dan het beste, <a href="test"> of <a href="test.php">
Als je meteen naar test.php linkt heeft de rewriterule geen nut tenzij je die weer redirect maar dat is dubbelop.
-
03-02-2013, 13:20 #10gast16106 Guest
Re: htaccess probleem
Ok. Ik maak sinds gisteren gebruik van de rewriterules.
Mijn htaccess bestand bevat nu een algemene rule om alle php bestanden om te schrijven.
Dat is toch ook goed i.p.v. alle pagina's individueel vermelden?
Dus:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^voorbeeld\.nl$ [NC]
RewriteRule ^(.*)$ http://www.voorbeeld.nl/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(([^/]+/)*[^.]+)$ $1.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php http://www.voorbeeld.nl/$1 [R=301,L]
-
03-02-2013, 13:27 #11
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
Ok. Ik maak sinds gisteren gebruik van de rewriterules.
Mijn htaccess bestand bevat nu een algemene rule om alle php bestanden om te schrijven.
Dat is toch ook goed i.p.v. alle pagina's individueel vermelden?
Dus:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^voorbeeld\.nl$ [NC]
RewriteRule ^(.*)$ http://www.voorbeeld.nl/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(([^/]+/)*[^.]+)$ $1.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php http://www.voorbeeld.nl/$1 [R=301,L]
-
03-02-2013, 13:31 #12gast16106 Guest
Re: htaccess probleem
Jawel hoor, dat werkt prima.
Ik vroeg dat met name voor SEO doeleinden, wellicht was het beter om altijd met extensie te werken.
Maar ik vraag me af waarom je kiest voor meerdere individuele rewriterules i.p.v. één algemene rewriterule?
-
03-02-2013, 13:40 #13
- Berichten
- 418
- Lid sinds
- 17 Jaar
Re: htaccess probleem
Wat betreft de individuele rewriterules, daar wil ik nu juist vanaf aangezien ik met 2 rewriterules +- 20 losse php bestanden kan weggooien (dit aantal was zelfs nog stegen als ik mijn site was gaan uitbreiden zonder deze oplossing). Naast dat het overzichtelijker is hoef ik wijzigingen nu nog maar op één plek door te voeren.
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