mod rewrite stuurt me door naar index van mijn root, niet huidige map
Het .htaccess bestand staat in de map van mijn huidige project maar wanneer ik naar de url toe ga en /home toevoeg kom ik op de index die in mijn root folder staat.
Waar zou dat aan kunnen liggen? Ik heb ook een base tag toegevoegd die naar de juiste map verwijst.
Mijn .htaccess:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
DirectoryIndex
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#CMS rewrite
#Aanzetten wanneer website live staat
#RewriteRule ^cms/$ /cms/administrator [L]
#Projectnaam
DirectoryIndex index.php
RewriteRule ^home index.php [QSA,L]
RewriteRule ^overzicht shopping-cart-page.php [QSA,L]
RewriteRule ^bestellen checkout.php [QSA,L]
RewriteRule ^contact contact.php [QSA,L]
RewriteRule ^status success.php [QSA,L]
RewriteRule ^info/(.*) content.php?alias=$1 [QSA,L]
RewriteRule ^categorie/(.*) catlisting2.php?alias=$1 [QSA,L]
#Zorg ervoor dat onderstaande regels alleen worden uitgevoerd als het geen folder (d) is of een file (f)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ product-page.php?cat=$1&alias=$2 [QSA,L]
#RewriteRule ^test/([\w-]+)/([\w-]+)/?$ product-page2.php?cat=$1&alias=$2 [QSA,L]
RewriteRule ^([\w-]+)/?$ catlisting.php?alias=$1 [QSA,L]
#ErrorPages
ErrorDocument 404 /error/404.php
ErrorDocument 403 /error/403.php
ErrorDocument 500 /error/500.php
ErrorDocument 501 /error/501.php
ErrorDocument 503 /error/503.php
ErrorDocument 504 /error/504.php
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#CMS rewrite
#Aanzetten wanneer website live staat
#RewriteRule ^cms/$ /cms/administrator [L]
#Projectnaam
DirectoryIndex index.php
RewriteRule ^home index.php [QSA,L]
RewriteRule ^overzicht shopping-cart-page.php [QSA,L]
RewriteRule ^bestellen checkout.php [QSA,L]
RewriteRule ^contact contact.php [QSA,L]
RewriteRule ^status success.php [QSA,L]
RewriteRule ^info/(.*) content.php?alias=$1 [QSA,L]
RewriteRule ^categorie/(.*) catlisting2.php?alias=$1 [QSA,L]
#Zorg ervoor dat onderstaande regels alleen worden uitgevoerd als het geen folder (d) is of een file (f)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ product-page.php?cat=$1&alias=$2 [QSA,L]
#RewriteRule ^test/([\w-]+)/([\w-]+)/?$ product-page2.php?cat=$1&alias=$2 [QSA,L]
RewriteRule ^([\w-]+)/?$ catlisting.php?alias=$1 [QSA,L]
#ErrorPages
ErrorDocument 404 /error/404.php
ErrorDocument 403 /error/403.php
ErrorDocument 500 /error/500.php
ErrorDocument 501 /error/501.php
ErrorDocument 503 /error/503.php
ErrorDocument 504 /error/504.php
Op internet kan ik hier niks over vinden.
Dat houdt in dat elke map met een site de root van dat (sub)-domein is.
Je hoeft dan nooit te tobben om ervoor te zorgen dat de url goed uitkomt.
Daar ontleed je verder wat er met requests zoals /home moet gebeuren. Dit laat je mede afhangen van de hostname (een switch-statement op grond van $_SERVER['SERVER_NAME']). Op eenzelfde wijze kun je voor elke site een aparte database selecteren zodat je voor elke site ook echt een aparte administratie kunt bijhouden.
Hiervoor is het wel noodzakelijk dat je het gebruik van routing wat verder uitdiept, en er eigenlijk geen standalone scripts meer in de webdirectory voorkomen -behalve de meest noodzakelijke zoals index.php-, omdat dit mogelijk kan conflicteren met de routing.
Gewijzigd op 25/10/2018 15:13:24 door Thomas van den Heuvel