Peter Nack: Apache .htaccess - Verwendung so korrekt?

Beitrag lesen

Tag zusammen,

ich habe mich in letzter Zeit ein wenig in den Apache eingearbeitet.
Nutzte ich ihn vorher lediglich um PHP ausfuehren zu koennen, habe ich bei meinem aktuellen Projekt mal mehr mit den Moeglichkeiten rumgespielt, die mir der Apache vor allem mit der ausfuehrlichen RewriteEngine bietet.

Vorab gesagt, es funktioniert so, wie ich es mir wuensche.
Allerdings wuerde ich gerne mal von ein paar Fachleuten hier hoeren, ob ich die Sachen korrekt verstanden und auch richtig implementiert habe, oder ob ich mit meinen Konfigurationen evtl. in eine falsche Richtung gelaufen bin und ich eines Tages darueber stolpern werde.

Kurze Erlaeuterung meines strukturellen Aufbaus:

  • Fuer jede moegliche Sprache existiert eine Subdomain

  • "en" ist Standard

  • "www" wird zu "en" weitergeleitet

  • Alle moeglichen HTML-Files befinden sich unter /sources/view/. So auch meine Index.html

  • wenn in der URL die Angabe /items/ vorhanden ist, wird die Anfrage an eine spezielle Datei weitergeleitet und weitere Angaben erst durch diese Datei ausgewertet.
    Somit gewaehrleiste ich zb folgende virtuelle URLS:
    http://en.example.com/items/sektor1/subsektor2/regionXyZ/ItemName

  • Alle *.css, *.js, *.tpl und *.ajax -Anfragen werden automatisch an ihren entsprechenden Ordner deligiert.
    Somit brauche ich fuer die Einbindung dieser Resourcen keine Pfade anzugeben.

  • *.css, *.js, *.tpl und *.ajax -Files werden als PHP geparsed (nicht alle)

  • eigenes 404-Error-Document

Fuer o.g. Ansprueche habe ich mir nun folgende .htaccess-Datei erstellt:

  
# ----------------------------------------------------------------  
# Enable Rewrite Engin  
# ----------------------------------------------------------------  
RewriteEngine on  
  
  
# ----------------------------------------------------------------  
# Redirect automatically to the en-subdomain  
# ----------------------------------------------------------------  
RewriteCond %{HTTP_HOST} www\.example\.dev$ [NC]  
RewriteRule ^(.*)$ http://en.example.dev/$1 [R=301,L]  
  
  
# ----------------------------------------------------------------  
# Define the initial Page  
# ----------------------------------------------------------------  
DirectoryIndex  sources/view/index.html  
  
  
# ----------------------------------------------------------------  
# Redirect Items-Requests to the corresponding Page  
# ----------------------------------------------------------------  
RewriteRule ^(items/).*$ sources/view/view_items.html  
  
  
# ----------------------------------------------------------------  
# Define the Sources-Folder for HTML-Pages  
# ----------------------------------------------------------------  
RewriteRule ^([^/]+\.html)$ sources/view/$1 [L]  
  
  
# ----------------------------------------------------------------  
# Redirect every CSS-Request to the CSS-Folder  
# ----------------------------------------------------------------  
RewriteRule ([^/]+\.css) gui/css/$1 [L]  
  
  
# ----------------------------------------------------------------  
# Redirect every JavaScript-Request to the CSS-Folder  
# ----------------------------------------------------------------  
RewriteRule ([^/]+\.js) gui/js/$1 [L]  
  
  
# ----------------------------------------------------------------  
# Redirect every AJAX-Request to the Ajax-Folder  
# ----------------------------------------------------------------  
RewriteRule ([^/]+\.ajax) sources/ajax/$1 [L]  
  
  
# ----------------------------------------------------------------  
# Parse *.html-Files as PHP  
# ----------------------------------------------------------------  
AddType application/x-httpd-php .html  
  
  
# ----------------------------------------------------------------  
# Parse *.ajax-Files as PHP  
# ----------------------------------------------------------------  
AddType application/x-httpd-php .ajax  
  
  
# ----------------------------------------------------------------  
# Parse *.tpl-Files as PHP  
# ----------------------------------------------------------------  
<Files .tpl>  
	ForceType application/x-httpd-php  
</Files>  
  
  
# ----------------------------------------------------------------  
# Parse the main CSS-File as PHP  
# ----------------------------------------------------------------  
<Files main.css>  
	ForceType application/x-httpd-php  
</Files>  
  
  
# ----------------------------------------------------------------  
# Parse the Google-Maps JavaScript-File as PHP  
# ----------------------------------------------------------------  
<Files maps.js>  
	ForceType application/x-httpd-php  
</Files>  
  
  
# ----------------------------------------------------------------  
# Handle 404-Errors on our own  
# ----------------------------------------------------------------  
ErrorDocument 404 /sources/view/error_404.html  
  
  
# ----------------------------------------------------------------  
# Increase PHP's Memory Limit  
# ----------------------------------------------------------------  
php_value memory_limit 128M  

Ein weiterer Punkt, den ich mit meinem derzeitigen Wissensstand noch nicht so ganz ueberschaue, waere SEO bzw. wie sich die einzelnen Rewrites auf die Suchmaschinen auswirken bzw. ob die davon ueberhaupt etwas mitbekommen. Und ob die Werte (zb [R=301,L]) fuer die Rewrites korrekt gesetzt sind.

Herzliche Dank im Voraus
Peter