Apache mod_rewrite and examples

Last updated: 18/02/2025

MDWX uses Apache, the open-source HTTP server software, to host your website. Apache can be customized via modules, and the mod_rewrite module is available for you to use yourself. mod_rewrite can redirect a URL to another URL, rewrite requested URLs, restrict access to your site, and much more.

A rewrite rule can be invoked by placing it in your .htaccess file. Below are examples of how you can use these rules to customize your hosting experience.

mod_rewrite Examples

Here are examples of rules that allow you to do the following:

Set default homepage

#Geef een standaardstartpagina op (indexpagina)
DirectoryIndex home.html

Provide IP access

#Sta alleen opgegeven IP's toe om toegang te krijgen tot uw site
deny from all
allow from 64.95.219.140
allow from 210.23.45.67

Redirect all web pages

# Stuur alle pagina's om van olddomain.com
# naar newdomain.com
Opties +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.olddomain.com$ [OF]
RewriteCond %{HTTP_HOST} ^olddomain.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]

Prevent subfolder Access

#Voorkom laden van submap. Dit gaat
# in htaccess voor het primaire domein
RewriteCond %{HTTP_HOST} ^primary\.com$ [OF]
RewriteCond %{HTTP_HOST} ^www\.primary\.com$
RewriteRule ^addon\.com\/?(.*)$ "http\:\/\/www\.addon\.com\/$1" [R=301,L]

Prevent access to subdomain

#Voorkom laden van subdomeinnaam.
#Dit gaat in htaccess voor het primaire domein
RewriteCond %{HTTP_HOST} ^subname\.primary\.com$ [OF]
RewriteCond %{HTTP_HOST} ^www\.subname\.primary\.com$
RewriteRule ^(.*)$ "http\:\/\/www\.addon\.com\/$1" [R=301,L]

Force non-www domain access

# Gebruik nooit www in het domein
# Vervang 'example.com' door uw domeinnaam
RewriteEngine op
RewriteCond %{HTTP_HOST} ^www\.(([a-z0-9_]+\.)?example\.com)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]

Force www domain access

# Gebruik altijd www in het domein
# Vervang 'example.com' door uw domeinnaam
RewriteEngine op
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]

Set default home folder

# Stel een standaard thuismap in (deze submap wordt altijd geladen)
# Vervang 'map' door de naam van uw submap
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ /folder/ [R=301,L]
</IfModule>

Redirect folder access

# Hernoem een ​​map en dwing bezoekers tot de nieuwe naam
# Vervang 'old' door de naam van uw oude map
# Vervang 'new' door de naam van uw nieuwe map
RewriteEngine On
RewriteRule ^/?old([a-z/.]*)$ /new$1 [R=301,L]

Force HTTPS access

# Gebruik altijd https voor beveiligde verbindingen
# Vervang 'www.example.com' door uw domeinnaam
# (zoals deze op uw SSL-certificaat staat)
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

Block traffic from multiple referrers

# Blokkeer verkeer van meerdere referenten
RewriteEngine On
Opties +FollowSymlinks
RewriteCond %{HTTP_REFERER} badsite\.com [NC,OF]
RewriteCond %{HTTP_REFERER} badforum\.com [NC,OF]
RewriteCond %{HTTP_REFERER} badsearchengine\.com [NC]
RewriteRule .* - [F]

Deny access to file types

#Sta niet toe dat deze bestandstypen worden aangeroepen
RewriteEngine On
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|exe|swf)$ - [F,NC]

Remove index

Opties +FollowSymLinks -MultiViews -indexes
RewriteEngine On
RewriteBase /
# verwijder index
RewriteCond %{THE_REQUEST} /index(\.php)?[\s?/] [NC]
RewriteRule ^(.*?)index(/|$) /$1 [L,R=301,NC,NE]

Remove .php

Opties +FollowSymLinks -MultiViews -indexes
RewriteEngine On
RewriteBase /
# verwijder .php; gebruik THE_REQUEST om oneindige lussen te voorkomen
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [L,R=301]

Remove index and /

Opties +FollowSymLinks -MultiViews -indexes
RewriteEngine On
RewriteBase /
# index verwijderen
RewriteRule (.*)/index$ $1/ [R=302]
# slash verwijderen indien geen directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /$
RewriteRule (.*)/ $1 [R=301,L]

Add .php to access a file without redirecting

Opties +FollowSymLinks -MultiViews -indexes
RewriteEngine On
RewriteBase /
# .php toevoegen om toegang te krijgen tot het bestand, maar niet omleiden
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1.php [L]
Back to helpdesk
Not found what you were looking for? Open a ticket

Kiyoh

9.9

based on 465 reviews

Rate >

Mediawax works with

Installatron Partner Imunify 360 Secured PHP 8 op alle servers Kernelcare Sectio ssl-certificaten Gratis Let's Encrtypt certificaten