Du hast gerade einen guten Fehler entdeckt, und zwar müsste die .htaccess-Datei des CMS' überarbeitet werden.
Momentan sieht sie so aus:
|
PHP-Quelltext
|
1
2
3
4
5
6
7
|
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-].*)/([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2&id=$3 [L,NC]
RewriteRule ^([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2 [L,NC]
RewriteRule ^([^-].*)\.html$ index.php?seite=$1 [L,NC]
</IfModule>
|
Es gibt zwar eine RewriteCond, diese bezieht sich aber nur auf die erste Rule. Das heisst, wenn die erste RewriteRule nicht zutrifft, wird die RewriteCond für die folgenden nicht angewandt. Und genau dies wird bei dir zum Verhängnis. Die URL swf/irgend_eine_datei.html würde auf die zweite Rule zutreffen, die RewriteCond schliesst die real existierende Datei aber nicht aus, da diese URL auf die zweite, nicht aber auf die erste RewriteRule angewandt wird.
Desweiteren müssten nicht nur real existierende Ordner, sondern auch Dateien ausgeschlossen werden.
Die korrekte .htaccess würde dabei folgendermassen aussehen:
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2&id=$3 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)\.html$ index.php?seite=$1 [L,NC]
</IfModule>
|
Somit hast du zwei Möglichkeiten, um dein Problem zu lösen. Entweder du bearbeitest die .htaccess des Stammverzeichnis und nimmst den korrekten Code, den ich hier gepostet habe. Dabei musst du aber beachten, dass die .htaccess von PHP erstellt wurde und somit in diesen Besitzrechten steht. Über einen FTP-Client würdest du die Datei nicht bearbeiten können. Dafür müsstest du erst die Besitzrechte der .htaccess-Datei auf dich als FTP-Client-User umstellen. Das kannst du über das Interface des Servers/Webspaces deines Anbieters machen.
Oder aber, was du auch machen kannst, ist eine weitere .htaccess Datei erstellen mit folgendem Inhalt und diese in den Ordner /swf hochladen:
|
PHP-Quelltext
|
1
2
3
|
<IfModule mod_rewrite.c>
RewriteEngine off
</IfModule>
|
Ist vielleicht die einfachere Variante.
PS.
Jetzt habe ich gerade gesehen, dass der Inhalt der .htaccess Datei in der Datenbank gespeichert wird. Das macht es natürlich noch einfacher. Also vergiss das mit den Besitzrechten und der Variante 2 und mache folgendes.
Bearbeite die Datensätze der Tabelle mod_rewrite über phpmyadmin o.Ä
seo_1:
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)/([^-].*)/$ index.php?seite=$1&action=$2&id=$3 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)/$ index.php?seite=$1&action=$2 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)\/$ index.php?seite=$1 [L,NC]
</IfModule>
|
seo_2
|
PHP-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2&id=$3 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)/([^-].*)\.html$ index.php?seite=$1&action=$2 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-].*)\.html$ index.php?seite=$1 [L,NC]
</IfModule>
|
Anschliessend über das cms2day Backend das mod_rewrite neu aktivieren.
Somit sollte sich das Problem aufgelöst haben.