2017-09-22 1 views
0

Meine .htaccess sieht wie folgt aus:.htaccess umleiten 301, bevor andere Regeln

# Prevent directory listings 
Options -Indexes 

redirect 301 /old.html http://blablabla.pl/new 
redirect 301 /other-page.html http://blablabla.pl/new-page 
redirect 301 /xxx.html http://blablabla.pl/zzz 

# Prevent visitors from viewing files directly 
<FilesMatch "\.(sdb|md|html|txt)$"> 
    <IfModule mod_authz_core.c> 
     Require all denied 
    </IfModule> 
    <IfModule !mod_authz_core.c> 
     Order deny,allow 
     Deny from all 
    </IfModule> 
</FilesMatch> 

# URL rewrites 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^(inc/|themes/|tmp/).*\.(php|html)$ - [F,L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule^index.php [L] 
</IfModule> 

ich CMS bin mit die HTML-Dateien als Vorlagen verwenden (es gibt Variablen, PHP-Code etc.). In diesem CMS gibt es Regeln, die verhindern, dass Besucher HTML-Dateien direkt betrachten können. Ich habe eine Seite auf dieses CMS verschoben und wollte 301 Redirect von alten Seiten ausführen, aber es funktioniert nicht - ich bekomme 403 verboten Fehler. Gibt es eine Möglichkeit 301 Redirect vor anderen Regeln auszuführen?

+0

Kommentar 'Options' Linie und alle' FilesMatch' und Ihre 301 Regeln erneut zu testen. – anubhava

+0

Das wird funktionieren, aber es ist keine Lösung. – insanebear

+0

Zuerst testen und herausfinden, ob es funktioniert oder nicht. Dies dient nur zu Testzwecken. – anubhava

Antwort

0

Arbeitslösung:

(...) 
# Prevent visitors from viewing files directly 
<FilesMatch "\.(sdb|md|html|txt)$"> 
    <IfModule mod_authz_core.c> 
     Require all denied 
    </IfModule> 
    <IfModule !mod_authz_core.c> 
     Order deny,allow 
     Deny from all 
    </IfModule> 
</FilesMatch> 

<FilesMatch "(old\.html)|(other-page\.html)|(xxx\.html)"> 
    Allow from all 
    Satisfy any 
</FilesMatch> 
(...)