Wie mache ich .htaccess Arbeit auf dem aktuellen Verzeichnis und nicht Verzeichnisse?

StackOverflow https://stackoverflow.com/questions/1200348

  •  05-07-2019
  •  | 
  •  

Frage

Ich verwende mod Rewrite meine PHP-Dateien im Stammverzeichnis meiner Website indirekt zuzugreifen. Derzeit habe ich so etwas wie dies,

RewriteRule ^(blog|about|page3|etc)$ /$1.php [L]

Aber was ich möchte, ist verwenden,

RewriteRule ^(.*)$ /$1.php [L]

So, dass ich nicht haben, um meine .htaccess-Datei zu aktualisieren, wenn ich eine neue Seite auf meine Website hinzufügen will. Das Problem dabei ist jedoch, dass es auch meine Unterverzeichnisse beeinflusst. Das macht CSS, Javascript, Bilder unaccessable weil es Umleitungen an "/dir/example.png.php".

Also, was ist die beste Lösung hier?

War es hilfreich?

Lösung

Versuchen Sie, diese Regel:

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule .* $0.php [L]

Andere Tipps

Bearbeiten Sie die .htaccess dazu:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1.php [L]

die Rewrite-Engine Nach dem Start wird es zunächst prüfen, zu, wenn die angeforderte Datei auf dem System eine aktuelle Datei ist, oder ob es sich tatsächlich um ein Verzeichnis. Wenn es keinen von denen ist, wird es die Regel auszuführen, die in diesem Fall ist es zu versuchen und die Datei zu finden, indem .php anhängen und servieren.

Unterverzeichnisse, Bilder, CSS und dergleichen in Ordnung sein werden, weil sie Schritt wird aus den Überschreibungs sobald sie gefunden werden.

Ich würde tun es mit Filtern Unterverzeichnisse zu ignorieren. Auf diese Weise müssen sie nur ändern, wenn Sie einen Unterordner hinzufügen. Sie werden eine Zeile wie hinzufügen müssen Sosh 's, wenn Sie Bilder oder andere Dateien in den Ordner

Das folgende würde „Bilder“ und „js“ Vorhefte ignorieren und leiten alles andere

RewriteRule   ^images*   -  [L]
RewriteRule   ^js*       -  [L]
RewriteRule   ^(.*)$     /$1.php   [L]

So etwas (man beachte das!):

RewriteRule !\.(js|ico|gif|jpg|png|css|zip|gz|html|xml)$ index.php
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top