Smartoptimizer .htaccess/modrewrite Problem

 


Frashier
Stammgast

27.08.10
18:18 Uhr
Ich möchte den Smartoptimizer http://farhadi.ir/works/smartoptimizer () nutzen. Welcher folgendes in
der htaccess voraussetzt:

  1. <IfModule mod_expires.c>
  2. <FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
  3. ExpiresActive On
  4. ExpiresDefault "access plus 10 years"
  5. </FilesMatch>
  6. </IfModule>
  7. <IfModule mod_rewrite.c>
  8. RewriteEngine On
  9.  
  10. RewriteCond %{REQUEST_FILENAME} !-f
  11. RewriteCond %{REQUEST_FILENAME} !-d
  12. RewriteRule ^(.*\.(js|css))$ smartoptimizer/?$1
  13.  
  14. <IfModule mod_expires.c>
  15. RewriteCond %{REQUEST_FILENAME} -f
  16. RewriteRule ^(.*\.(js|css|html?|xml|txt))$ smartoptimizer/?$1
  17. </IfModule>
  18.  
  19. <IfModule !mod_expires.c>
  20. RewriteCond %{REQUEST_FILENAME} -f
  21. RewriteRule ^(.*\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt))$ smartoptimizer/?$1
  22. </IfModule>
  23. </IfModule>
  24. <FilesMatch "\.(gif|jpg|jpeg|png|swf|css|js|html?|xml|txt)$">
  25. FileETag none
  26. </FilesMatch>
Quelltext in Zwischenablage kopieren

Meine .htaccess sieht so aus (sicherlicher auch verbesserungswürdig)

  1. RewriteEngine On
  2. RewriteBase /
  3.  
  4. RewriteRule ^feed\.rss$ rss.php [L]
  5. RewriteRule ^archiv/([0-9]{2})-([0-9]{4})\.rss$ rss.php?year=$2&month=$1 [L]
  6. RewriteRule ^kategorie/(.*)\.rss$ rss.php?category=$1 [L]
  7. RewriteRule ^(.*)\.rss$ rss.php?urltitle=$1 [L]
  8. RewriteRule ^(.*)/unsubscribe.(.*)$ index.php?site=blog_archiv&url=$1&unsubscribemail=$2 [L]
  9.  
  10. RewriteCond %{REQUEST_FILENAME} !-f
  11. RewriteCond %{REQUEST_URI} !(.*)/$
  12. RewriteRule ^(.*)$ /$1/ [L,R=301]
  13.  
  14. RewriteRule ^impressum/$ index.php?site=impressum [L]
  15. RewriteRule ^archiv/([1-9][0-9]*)/([0-9]*)/$ index.php?year=$1&month=$2 [L]
  16. RewriteRule ^archiv/([1-9][0-9]*)/([0-9]*)/seite/([1-9][0-9]*)/$ index.php?year=$1&month=$2&pg=$3 [L]
  17. RewriteRule ^kategorie/([-a-zA-Z]*)/$ index.php?category=$1 [L]
  18. RewriteRule ^kategorie/([-a-zA-Z]*)/seite/([1-9][0-9]*)/$ index.php?pg=$2&category=$1 [L]
  19. RewriteRule ^schlagwort/([-a-zA-Z-0-9]*)/$ index.php?tag=$1 [L]
  20. RewriteRule ^schlagwort/([-a-zA-Z]*)/seite/([1-9][0-9]*)/$ index.php?pg=$2&tag=$1 [L]
  21. RewriteRule ^seite/([1-9][0-9]*)/$ index.php?pg=$1 [L]
  22. RewriteRule ^.*/seite/([1-9][0-9]*)/$ index.php?pg=$1 [L]
  23. RewriteRule ^(.*)/([0-9]+)/$ index.php?site=archiv&url=$1&commentto=$2 [L]
  24. RewriteRule ^vorschau/(.*)/$ index.php?site=blog_archiv&action=preview&url=$1 [L]
  25.  
  26. RewriteRule ^([^/]+)/$ index.php?site=blog_archiv&url=$1 [L]
Quelltext in Zwischenablage kopieren

Probleme macht der letze RewriteRule in meiner htaccess.

  1. RewriteRule ^([^/]+)/$ index.php?site=blog_archiv&url=$1 [L]
Quelltext in Zwischenablage kopieren

Welcher sowas erfolgreich umleitet http://www.domain.de/das-ist-ein-blog-artikel/

Nur nicht mehr wenn ich das Smartoptimizer modrewrite in die htaccess einfüge, dann stimmen die links zu .css und .js nicht mehr. Wofür eindeutig
die letzte Zeile meines htaccess verantwortlich ist. Ich kämpfe mich schon wie wild durch RegExp aber komme einfach zu keiner Lösung. Suche daher hier Hilfe.

Hilfe!
Link zu diesem Beitrag in die Zwischenablage kopieren
stese
Moderator

28.08.10
08:21 Uhr
die frage ist, wo du es eingebunden hast. deine letzte rule nimmt einfach mal alles, egal ob bild oder andere logische zeile.

in die smart optimzier rule muss am ende noch ein [L] damit er auch wieder aufhört wenn was gefunden wurde und die rule muss über deine letzte zeile, dann sollte es eigtl. funktionieren
Link zu diesem Beitrag in die Zwischenablage kopieren
Frashier
Stammgast

29.08.10
19:56 Uhr
stese schrieb am 28.08.10, 08:21 Uhr:

die frage ist, wo du es eingebunden hast. deine letzte rule nimmt einfach mal alles, egal ob bild oder andere logische zeile.

in die smart optimzier rule muss am ende noch ein [L] damit er auch wieder aufhört wenn was gefunden wurde und die rule muss über deine letzte zeile, dann sollte es eigtl. funktionieren

Hab ich mal ausprobiert. Aber damit ändere ich nichts. Die letzte Zeile nimmt noch immer alles. Habe es auch mal so probiert.

  1. RewriteRule ^([-a-zA-Z-0-9][^/\.]+)/$ index.php?site=blog_archiv&url=$1 [L]
Quelltext in Zwischenablage kopieren

Wobei ich Punkt und Slash negiere, weil die nicht vorkommen in einer Weiterleitung in dieser Art. zb. http://www.domain.de/ich-habe-null-ahnung-hoch-10/ und sollte doch alles andere rauslassen wie z.B. http:/www.domain.de/css/style.css, .js oder Bilder.

Oder hab ich da einen Fehler drin?
Link zu diesem Beitrag in die Zwischenablage kopieren
 
#