brainbaking/content/wiki/code/htaccess.md

59 lines
1.6 KiB
Markdown

+++
title = "htaccess"
draft = false
tags = [
"code",
"htaccess"
]
date = "2015-01-06"
+++
# .htaccess stuff
Basisprincipe van rewriterules: altijd `RewriteEngine On` en `RewriteBase /` toevoegen.
Daarna: `RewriteCond` slaat enkel op **éérstvolgende** `RewriteRule` regel.
#### Request exceeded the limit of 10 internal redirects due to probable configuration error
[bron](http://stackoverflow.com/questions/1611506/request-exceeded-the-limit-of-10-internal-redirects-due-to-probable-configuratio)
Gebruik `!^map/` voor de rule om bepaalde folders uit te sluiten als ze al herschreven zijn.
#### square bracket rules: rewrite flags
[zie ook docs](http://httpd.apache.org/docs/2.2/rewrite/flags.html)
1. NC: case insensitive
2. L: stop processing other rules (final)
3. R=123: redirect HTTP code
#### Redirecten - moved
[bron](http://enarion.net/web/htaccess/migrate-domains/)
Van oud naar nieuw domeinnaam:
```
RewriteCond %{HTTP_HOST} savesourdough.com$ [NC]
RewriteRule ^(.*)$ http://www.redzuurdesem.be/$1 [L,R=301]
```
1. Kan ook om bvb van `www` naar `http` of omgekeerd te redirecten.
2. `^(.*)$` catcht alles achter het domein in een parameter `$1`
#### Redirecten - verschillende domeinen
```
RewriteEngine On
#ADD TRAILING SLASH TO DIRECTORY IF NONE EXISTS
RewriteRule ^([^<br/>.]+[^/])$ http://%{HTTP_HOST}/$1/ [L]
RewriteCond %{HTTP_HOST} ^(www.)?site1.com$ [NC]
RewriteCond %{REQUEST_URI} !site1/ [NC]
RewriteRule ^(.*)$ /site1/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?site2.com$ [NC]
RewriteCond %{REQUEST_URI} !site/ [NC]
RewriteRule ^(.*)$ /site2/$1 [L]
```