Trailing slash via mod_rewrite hinzufügen

Alles, was den Apache betrifft, kann hier besprochen werden.

Trailing slash via mod_rewrite hinzufügen

Postby mcman » 13. July 2010 21:42

Hallo zusammen! Vorneweg: Ich beschäftige mich erst seit wenigen Tagen mit der Materie "Apache" bzw. ".htaccess", also seid bitte gnädig mit mir... :wink: Da ich leider keinen direkten Serverzugriff habe, nutze ich eine globale .htaccess-Datei im Root-Verzeichnis, welche auszugsweise wie folgt aussieht:

Code: Select all
# MAIN SETTINGS
Options +FollowSymLinks +SymLinksIfOwnerMatch -ExecCGI -Includes -Indexes -MultiViews

# REWRITES #
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !^/robots\.txt$
  RewriteCond %{REQUEST_URI} !^/sitemap\.xml$
  RewriteCond %{REQUEST_URI} !^/favicon\.ico$

  RewriteCond %{HTTP_HOST} ^beispiel\.de$ [NC]
  RewriteRule ^(.*)$ http://www.beispiel.de/$1 [R=301,L]

  RewriteCond %{HTTP_HOST} ^www\.(.*)\.beispiel\.de$ [NC]
  RewriteRule ^(.*)$ http://%1.beispiel.de/$1 [R=301,L]
</IfModule>

Die rewrite rules (www für Domains resp. non-www für Subdomains) zur Vermeidung von Duplicate Content funktionieren soweit einwandfrei - wenn da die doofen Trailing Slashes nicht wären... :roll:

Das Problem: Aktuell werden "beispiel.de" und "beispiel.de/" wie gewollt via 301 auf "www.beispiel.de/" umgeleitet. Beim Aufruf von "www.beispiel.de" erhalte ich jedoch eine "200 Status OK"-Meldung, was - wenn ich richtig verstanden habe - Google überhaupt nicht gern hat. Genauso verhält es sich bei Subdomains, "subdomain.beispiel.de" wird nicht umgelenkt.

Mit folgender Regel habe ich versucht hier ebenfalls einen Trailing Slash zu erzwingen:

Code: Select all
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ $1/ [L,R=301]

Dies führt jedoch dazu, dass nunmehr auf "www.beispiel.de/index.htm/" umgeleitet wird. Stelle ich hier zusätzlich

Code: Select all
RewriteCond %{REQUEST_FILENAME} !index.htm

voran, wird das Umleitungsziel wieder korrekt angesteuert, aber ich erhalte eben auch wieder die 200er... :?
Gibt es hier eine verträgliche Lösung? Und: Wie muss ich verfahren, damit auch alle Unterordner zwingend mit einem Trailing Slash versehen werden?

Besten Dank im Voraus!
mcman
mcman
 
Posts: 2
Joined: 13. July 2010 20:19

Re: Trailing slash via mod_rewrite hinzufügen

Postby mcman » 17. July 2010 18:26

Niemand? :wink:
mcman
 
Posts: 2
Joined: 13. July 2010 20:19


Return to Apache

Who is online

Users browsing this forum: No registered users and 24 guests

cron