2 Stimmen

.htaccess: www AND direct zu einem Unterordner hinzufügen

Ich versuche, ein htaccess-Skript zu schreiben, das sowohl automatisch das www hinzufügt als auch den Inhalt aus einem Unterordner abruft.

Hier ist das Skript, das ich verwende, um aus einem Unterverzeichnis zu ziehen.

RewriteEngine On
RewriteBase /

# pointing for the domain abc.com to folder abc
ReWriteCond %{HTTP_HOST} abc.com
ReWriteCond %{REQUEST_URI} !abc/
ReWriteRule ^(.*)$ abc/$1 [L]  

Immer wenn ich versuche, einen Code zum automatischen Hinzufügen von www einzubauen, geht es auf die eine oder andere Weise schief.

2voto

Echo419 Punkte 490

So etwas sollte funktionieren.

<IfModule mod_rewrite.c>
#Turn on rewriting
RewriteEngine on
# Rewrite the non www. version
RewriteCond %{HTTP_HOST} !^www.abc.com$
RewriteRule ^(.*)$ http://www.abc.com/abc [L]
# Rewrite the www. version
RewriteCond %{HTTP_HOST} ^www.abc.com$
RewriteRule ^(.*)$ http://www.abc.com/abc [L]
</IfModule>

0voto

Charles Keepax Punkte 2362

So etwas sollte funktionieren:

RewriteEngine On
RewriteBase /

# Rewrite to include www
RewriteCond %{HTTP_HOST} ^abc\.com [NC]
RewriteRule ^(.*)$ http://www.abc.com/ [L,R=301]

# Rewrite for the domain abc.com to folder abc
ReWriteCond %{HTTP_HOST} ^www\.abc\.com [NC]
ReWriteCond %{REQUEST_URI} !abc/ [NC]
ReWriteRule ^(.*)$ abc/$1 [L]

Ich mag es, jede Instanz von . in einer URL zu escapen, weil in einem Regex ein Punkt mit allem übereinstimmt, und im Allgemeinen füge ich das Kennzeichen für Groß- und Kleinschreibung [NC] großzügig hinzu. Die erste Regel sollte das www einschließen und die zweite Regel sollte alle anderen Pfade auf den abc-Pfad umleiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X