2016-08-30 4 views
0

Entschuldigung, wenn ich einige Diskussionen über .htaccess dupliziere. aber ich habe keine direkte Antwort auf meine Fragen gefunden. Hier sind sie: 1. Ich versuche, index.php von URLs in Home-Verzeichnis und Unterverzeichnissen zu entfernen. Bisher habe ich die folgenden zwei Regeln kommt (ein für Home-Verzeichnis und die andere für Verzeichnisse):Regulärer Ausdruck für DirectoryIndex in htaccess

# removes index.php (in public_html) 
RewriteRule ^index.php$/[QSA,R] 

# removes index.php (in all directories exept public_html) 
RewriteRule ^(.*?)/index\.php /$1 [R=301,R] 

Gibt es eine Möglichkeit, es mit einer gemeinsamen Regel zu machen?

  1. ich auch schon einige Unterverzeichnis-Index-Dateien mit unterschiedlichen Präfixen endend mit -Index haben: bla-Index, foo-Index, Präfix-Index etc. Ich möchte Machen Sie sie alle als DirectoryIndex mit einer Art von regulären Ausdruck. Die folgende Regel entfernt Präfix-index.php

    #removes prefix-index.php (in all directories exept public_html) 
    RewriteRule ^(.*)/(.*)index.php /$1 [R=301,R] 
    

, dass genau das, was ich wollte, aber jetzt habe ich die 403-Fehler, weil .htaccess sagt:

DirectoryIndex index.php 

Ich habe versucht, verschiedene regelmäßige Ausdrücke für DirectoryIndex ohne Erfolg. Bitte helfen Sie!

P.S. Ich kann nur die .htaccess verwenden nicht die httpd.conf

Antwort

0

können Sie entfernen index.php diesen Code in Website root .htaccess mit:

DirectoryIndex index.php 
Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{THE_REQUEST} \s(.*)index\.php[?\s] [NC] 
RewriteRule^%1 [L,R=301,NE]