tag:forum.selfhtml.org,2005:/self Variabeln aus Link sollen als Datei angezeigt werden .htaccess – SELFHTML-Forum 2022-02-04T09:51:52Z https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795870?srt=yes#m1795870 basti1012 basti1012@soforthilfe-forum.de 2022-02-04T02:58:12Z 2022-02-04T05:52:38Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Ich versuche die ganze Zeit meine Links ,die so aussehen</p> <p><strong>https://beispiel.de/ordner1/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner2/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner3/index.php?name=dateixy</strong></p> <p>Umzuwandeln , so das man sie im Browser so aufrufen kann</p> <p><strong>https://beispiel.de/ordner1/dateixy.html</strong><br> <strong>https://beispiel.de/ordner2/dateixy.html</strong><br> <strong>https://beispiel.de/ordner3/dateixy.html</strong></p> <p>Dazu habe ich in einer htaccess Datei das reingeschrieben</p> <pre><code class="block">RewriteEngine On RewriteBase / RewriteRule ^/?ordner1/(.+)$ ordner1/index.php?name=$1 [L][R=301,L] </code></pre> <p>Habe die htaccess Datei im Root Vezeichniss getestet und auch versucht die jeweils in ordner 1,2,3 zutesten.</p> <p>Habe es mal in einen Online Tester getestet <a href="https://htaccess.madewithlove.com/" rel="nofollow noopener noreferrer">Htaccess-tester</a></p> <p>Gebe ich da meinen Fake Link ein <strong>https://beispiel.de/ordner1/dateixy.html</strong> Dann zeigt er mir unten das erwünschte Ergebniss an ( The new url is <strong>https://beispiel.de/ordner1/index.php?name=dateixy.html</strong> ). Da soll dann der Inhalt aus der Db geholt werden</p> <p>Habe ich da irgendwas falsch verstanden ? Ich kam mit htaccess noch nie klar und werde es wohl nie verstehen . Kann mir einer helfen das ich das endlich zum laufen bekomme ?</p> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795872?srt=yes#m1795872 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2022-02-04T06:46:24Z 2022-02-04T06:46:42Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>@@basti1012</p> <blockquote> <p>Ich versuche die ganze Zeit meine Links ,die so aussehen</p> <p><strong>https://beispiel.de/ordner1/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner2/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner3/index.php?name=dateixy</strong></p> <p>Umzuwandeln , so das man sie im Browser so aufrufen kann</p> <p><strong>https://beispiel.de/ordner1/dateixy.html</strong><br> <strong>https://beispiel.de/ordner2/dateixy.html</strong><br> <strong>https://beispiel.de/ordner3/dateixy.html</strong></p> </blockquote> <p>Bei dir ist nicht nur der letzte Teil des URLs variable, sondern auch der vorletzte.</p> <p>Du musst also nach sowas wie <code>^/?([^/]+)/(.+)</code> suchen und durch <code>$1/index.php?name=$2</code> ersetzen.</p> <p> LLAP</p> <div class="signature">-- <br> <em>„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“</em><br> — Joachim Gauck über Impfgegner </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795877?srt=yes#m1795877 Robert B. 2022-02-04T08:29:47Z 2022-02-04T08:29:47Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Moin,</p> <blockquote> <p>Ich versuche die ganze Zeit meine Links ,die so aussehen</p> <p><strong>https://beispiel.de/ordner1/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner2/index.php?name=dateixy</strong><br> <strong>https://beispiel.de/ordner3/index.php?name=dateixy</strong></p> <p>Umzuwandeln , so das man sie im Browser so aufrufen kann</p> <p><strong>https://beispiel.de/ordner1/dateixy.html</strong><br> <strong>https://beispiel.de/ordner2/dateixy.html</strong><br> <strong>https://beispiel.de/ordner3/dateixy.html</strong></p> <p>Dazu habe ich in einer htaccess Datei das reingeschrieben</p> <pre><code class="block language-apacheconf"><span class="token directive-inline property">RewriteEngine</span> On <span class="token directive-inline property">RewriteBase</span> / <span class="token directive-inline property">RewriteRule</span><span class="token regex"> ^/?ordner1/(.+)$</span> ordner1/index.php?name=<span class="token variable">$1</span> <span class="token directive-flags keyword">[L]</span><span class="token directive-flags keyword">[R=301,L]</span> </code></pre> </blockquote> <p>Dein regulärer Ausdruck matcht den gesamten String hinter <code>ordner1/</code>, also <code>dateixy</code><strong><code>.html</code></strong>:</p> <blockquote> <p>Gebe ich da meinen Fake Link ein <strong>https://beispiel.de/ordner1/dateixy.html</strong> Dann zeigt er mir unten das erwünschte Ergebniss an ( The new url is <strong>https://beispiel.de/ordner1/index.php?name=dateixy.html</strong> ). Da soll dann der Inhalt aus der Db geholt werden</p> </blockquote> <p>Ist das Ergebnis wirklich das „erwünschte“? Deine Beschreibung oben ließe etwas Anderes erwarten.</p> <blockquote> <p>Habe ich da irgendwas falsch verstanden?</p> </blockquote> <p>Das kommt darauf an, was du genau möchtest.</p> <blockquote> <p>Ich kam mit htaccess noch nie klar und werde es wohl nie verstehen.</p> </blockquote> <p>Das hat mit htaccess nichts zu tun, sondern mit regulären Ausdrücken.</p> <p>Viele Grüße<br> Robert</p> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795880?srt=yes#m1795880 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2022-02-04T08:53:59Z 2022-02-04T09:10:08Z Beispieldomains <p>@@basti1012</p> <blockquote> <p>Ich versuche die ganze Zeit meine Links ,die so aussehen</p> <p><strong>https://beispiel.de/ordner1/index.php?name=dateixy</strong></p> </blockquote> <p>Für Beispieldomains gibt es gegistrierte Namen wie <strong>example.net</strong> [<a href="https://datatracker.ietf.org/doc/html/rfc2606" rel="nofollow noopener noreferrer">RFC2606</a>] (für Beispieldomains in anderen Schriften als der lateinischen siehe [<a href="https://www.iana.org/domains/reserved" rel="nofollow noopener noreferrer">IANA</a>]).</p> <p>beispiel.de gehört nicht dazu. Das <a href="https://wiki.selfhtml.org/wiki/Example.com" rel="nofollow noopener noreferrer">Wiki</a> sagt zwar <em>„Seit 2018 lässt sich auch die Seite beispiel.de als Beispieldomain nutzen“</em>, ich bin mir aber nicht sicher, ob es das so sagen sollte. Meine <a href="https://forum.selfhtml.org/self/2018/aug/30/ein-teil-der-url-wird-bei-anzeige-ausgeschnitten/1730668#m1730668" rel="noopener noreferrer">Bedenken</a> hatte ich geäußert.</p> <p> LLAP</p> <div class="signature">-- <br> <em>„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“</em><br> — Joachim Gauck über Impfgegner </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795873?srt=yes#m1795873 Rolf B 2022-02-04T07:20:35Z 2022-02-04T07:22:29Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Hallo Gunnar,</p> <p>stimmt schon, aber zumindest für "ordner1" hätte es ja funktionieren müssen, wenn der hardcoded in der rewrite rule steht.</p> <p>Ich bin ja bekanntlich kein Indianer aus dem Süden, sondern aus dem Nordwesten und verwende daher das Rewrite-Modul des IIS (mit dem man ebenfalls prima Zweikämpfe führen kann, aber es hat auch die nette Eigenschaft, einen "Rückwärts-Rewrite" im Output durchführen zu können) - aber mich deucht, dass die Flags falsch angegeben sind.</p> <p>Müssen nicht alle Options in EINEM [Klammerpaar] stehen?</p> <p>Und in Bastis Rule steht vorneweg noch ein /? - also optional ein / vornedran. Die Apache Doku sagt, dass der / zwischen Origin und Path nicht Teil des URL-Anteils ist, gegen den das Pattern gematcht wird. Dieses Stück Kunst kann demnach weg.</p> <p>Die Regel sollte so aussehen, meine ich:</p> <pre><code class="block">RewriteRule ^([^/]+)/(.+)$ $1/index.php?name=$2 [R=301,L] </code></pre> <p>Die Bedeutung des L Flags ist Dir klar, Basti?</p> <p>Bei Problemen kann auch das Logging von mod_rewrite weiterhelfen.<br> → <a href="https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging" rel="nofollow noopener noreferrer">https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging</a></p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795878?srt=yes#m1795878 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2022-02-04T08:34:36Z 2022-02-04T08:37:42Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>@@Rolf B</p> <blockquote> <p>Die Regel sollte so aussehen, meine ich:</p> <pre><code class="block">RewriteRule ^([^/]+)/(.+)$ $1/index.php?name=$2 [R=301,L] </code></pre> </blockquote> <p>Ich meine, nicht. Durch <code>[R=301]</code> erscheint der hässliche URL mit <code>index.php?name=</code> in der Adressleiste – das ist doch genau das, was man nicht will.</p> <p>Und Suchmaschinen sollen ja auch den coolen URL (bspw. https://example.net/ordner1/dateixy.html) indizieren. Welcher Stauscode müsste es also sein? </p> <p> LLAP</p> <div class="signature">-- <br> <em>„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“</em><br> — Joachim Gauck über Impfgegner </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795881?srt=yes#m1795881 Gunnar Bittersmann selfhtml@bittersmann.de https://bittersmann.de 2022-02-04T09:08:59Z 2022-02-04T09:08:59Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>@@Rolf B</p> <blockquote> <p>Und in Bastis Rule steht vorneweg noch ein /? - also optional ein / vornedran. Die Apache Doku sagt, dass der / zwischen Origin und Path nicht Teil des URL-Anteils ist, gegen den das Pattern gematcht wird. Dieses Stück Kunst kann demnach weg.</p> </blockquote> <p>Das musste es bei mir auch. Ich hatte mich letztens auch mit <code>RewriteRule</code> abgerackert – hatte schon das Fenster offen, um hier im Forum einen Thread zu eröffnen, hatte es dann aber im letzten Moment doch noch selbst hinbekommen.</p> <p>Bei mir liegt die zuständige .htaccess-Datei aber nicht im Webroot-Ordner, sondern im Ordner der betreffenden Webseiten <a href="https://bittersmann.de/startrek/series" rel="nofollow noopener noreferrer">Star Trek series</a>, und sieht so aus:</p> <pre><code class="block language-apache">Options -MultiViews RewriteEngine On RewriteBase /startrek/series RewriteCond %{REQUEST_URI} !index.php$ RewriteCond %{REQUEST_URI} !\.jsonld$ RewriteCond %{REQUEST_URI} !\.css$ RewriteCond %{REQUEST_URI} !\.svg$ RewriteRule (.+)$ index.php?series=$1 </code></pre> <p>Im selben Ordner befindliche JSON-LD-, CSS- und SVG-Ressourcen dürfen nicht weitergeleitet werden. Ebenfalls ausgeschlossen ist index.php – müsste <a href="/users/7109" class="mention registered-user" rel="noopener noreferrer">@basti1012</a> das nicht auch tun?</p> <p> LLAP</p> <div class="signature">-- <br> <em>„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“</em><br> — Joachim Gauck über Impfgegner </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795879?srt=yes#m1795879 Robert B. 2022-02-04T08:46:20Z 2022-02-04T08:46:20Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Moin Gunnar,</p> <blockquote> <p>Ich meine, nicht. Durch <code>[R=301]</code> erscheint der hässliche URL mit <code>index.php?name=</code> in der Adressleiste – das ist doch genau das, was man nicht will.</p> <p>Und Suchmaschinen sollen ja auch den coolen URL (bspw. https://example.net/ordner1/dateixy.html) indizieren. Welcher Stauscode müsste es also sein? </p> </blockquote> <p>Ich kaufe <em>OK</em> für 200 und möchte lösen.</p> <p>Viele Grüße<br> Robert</p> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795883?srt=yes#m1795883 Rolf B 2022-02-04T09:51:52Z 2022-02-04T09:51:52Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Hallo Robert,</p> <p>ich würde, nach Lektüre des Indianerhandbuchs, das R ganz weglassen. Wie Gunnar sagte: man möchte doch eigentlich nur dem Anwender eine "schöne" URL präsentieren und verbergen, dass da ein PHP Script steckt, das die Inhalte aus einer DB oder aus einem anderen klammen Kabuff im Kohlenkeller holt.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - obstruxi </div> https://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795882?srt=yes#m1795882 Robert B. 2022-02-04T09:50:19Z 2022-02-04T09:50:19Z Variabeln aus Link sollen als Datei angezeigt werden .htaccess <p>Moin Gunnar,</p> <blockquote> <pre><code class="block language-apacheconf"><span class="token directive-inline property">Options</span> -MultiViews <span class="token directive-inline property">RewriteEngine</span> On <span class="token directive-inline property">RewriteBase</span> /startrek/series <span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_URI}</span><span class="token regex"> !index.php$</span> <span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_URI}</span><span class="token regex"> !\.jsonld$</span> <span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_URI}</span><span class="token regex"> !\.css$</span> <span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_URI}</span><span class="token regex"> !\.svg$</span> <span class="token directive-inline property">RewriteRule</span><span class="token regex"> (.+)$</span> index.php?series=<span class="token variable">$1</span> </code></pre> <p>Im selben Ordner befindliche JSON-LD-, CSS- und SVG-Ressourcen dürfen nicht weitergeleitet werden. Ebenfalls ausgeschlossen ist index.php – müsste <a href="/users/7109" class="mention registered-user" rel="noopener noreferrer">@basti1012</a> das nicht auch tun?</p> </blockquote> <p>Im Allgemeinen ist eine Rewrite-Bedingung doch, dass der REQUEST_FILENAME nicht direkt im Dateisystem vorhanden ist:</p> <pre><code class="block language-apacheconf"><span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_FILENAME}</span> !-f <span class="token directive-inline property">RewriteCond</span> <span class="token variable">%{REQUEST_FILENAME}</span> !-d </code></pre> <p>Viele Grüße<br> Robert</p>