/ / Verstecke die Dateiendung mit htaccess - php, .htaccess, mod-rewrite, markdown

Dateiendung mit htaccess ausblenden - php, .htaccess, mod-rewrite, markdown

Ich bin nicht der Beste mit mod rewrite, also wenn mir hier jemand helfen kann, wäre das großartig.

Ich benutze ein Markdown-Prozessor-Skript und es ist sÜberschreiben Sie alle Dateien, die mit einem Markdown-Dateityp enden. Allerdings würde mir dieses Skript gefallen, wenn Sie Dateien in einem Ordner erfassen möchten, anstatt Dateien, die mit dem Markdown-Dateityp enden.

Hier ist die htaccess:

# display Markdown as HTML by default
RewriteEngine on

RewriteRule .+.(markdown|mdown|md|mkd)$ /static/includes/markdown/render.php
RewriteRule .+.(markdown|mdown|md|mkd)-text$ /static/includes/markdown/render.php [L]

Gibt es eine Möglichkeit, alle Dateien in einem Ordner namens (sagen wir mal) "Ordner" zu erfassen und den Dateityp am Ende zu eliminieren?

Also vielleicht eine URL wie

website.com/home

das ist tatsächlich

website.com/home.md

und wird mit dem Markdown-Skript bearbeitet?

Hoffe, das macht Sinn.

Antworten:

1 für die Antwort № 1

Das Umschreibmodul und es "s .htaccess Dateien funktionieren tatsächlich pro Ordner. Normalerweise hätte man eine Hauptleitung .htaccess Datei im Webstamm einer Site / Server. Sie können jedoch zahlreiche hinzufügen .htaccess Dateien in der Ordnerstruktur Ihrer Site, die jedem einzelnen Ordner spezifische Regeln geben.

Alles, was Sie tun müssten, ist ein anderes hinzuzufügen .htaccess Datei in Ihren Markdown-Ordner und ermöglicht es Parsing URLs ohne Dateierweiterungen, Weiterleitung an ein Skript, das in der Lage sein wird zu erkennen, welche ursprüngliche Datei angefordert wurde -

RewriteEngine on
RewriteRule ^(.*)$ /static/includes/markdown/render.php?file=$1 [L,QSA]

Grundsätzlich passiert hier, dass jede Datei, die in diesem Ordner angefordert wird, über Ihre render.php Datei.

Jetzt in deinem render.php Datei, Sie hätten eine $_GET Parameter von file enthält die ursprüngliche URL. Für eine URL von http://example.com/markdown/foo, Ihre render.php hätte foo in dem file Parameter -

 /static/includes/markdown/render.php?file=foo

Wenn Sie die richtigen Header in festlegen render.php Es wird in der Lage sein, jedes Dateiformat auszudrucken, wobei die Erweiterung in einer "falschen" URL versteckt wird.