Ergänzung rule htaccess mod-rewrite

Malaxo

Erfahrenes Mitglied
Hey Leute

Es existiert bereits ein htaccess-File und funktioniert einwandfrei.
Braucht eine Ergänzung und zwar die Umleitung von nicht www request an www.example.com requests.

Hier ist der Code der bestehenden htaccess
Code:
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
</IfModule>
# IE Cache fix?
ExpiresActive On
ExpiresDefault A1
Header append Cache-Control must-revalidate

# For all files not found in the file system, reroute the request to the
# "index.php" front controller, keeping the query string intact

<IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
</IfModule>

hier ist der Code für die Ergänzung:
Code:
<IfModule mod_rewrite.c>
    Options +FollowSymLinks RewriteEngine on
    RewriteCond %{HTTP_HOST} ^example\.com
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,L]
</IfModule>

Nun, ich weiss es braucht nicht jedesmal das <IfModule mod_rewrite.c> braucht es dann das "Options +FollowSymLinks RewriteEngine on" wirklich auch noch einmal?
Das "L" bewirkt doch einen Stopp der Rule. Wird danach nichts mehr geprüft oder gilt das nur für diese eine Rule?

Wie müsste sich die Datei den zusammensetzen, damit diese stimmt und auch korrekt wäre?
 

SpiceLab

ZENmechanic
Ungetestet:
Code:
<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent]  
    # For all files not found in the file system, reroute the request to the
    # "index.php" front controller, keeping the query string intact
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^ index.php [L]
</IfModule>
# IE Cache fix?
ExpiresActive On
ExpiresDefault A1
Header append Cache-Control must-revalidate
 
Zuletzt bearbeitet:

SpiceLab

ZENmechanic
L = last | Wenn Sie diese Option angeben, wird nach dieser RewriteRule keine weitere mehr ausgeführt.
Um sicherzustellen, dass das mod_rewrite-Modul auf dem Apache-Server geladen wird, genügt es, den Befehl <IfModule mod_rewrite.c></IfModule> einmal aufzurufen, und alle vorgesehenen Umleitungen / URL-Manipulationen darin einzubetten.
 

Malaxo

Erfahrenes Mitglied
Ok, Danke für deine Erklärung.
Hab es getestet und jetzt endlich klappt es.
Dieser Zeile fehlt noch das L, das braucht es scheinbar an dieser Stelle.
Code:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC,L]

Besten Dank
 
Zuletzt bearbeitet: