tag:forum.selfhtml.org,2005:/selfVariabeln aus Link sollen als Datei angezeigt werden .htaccess – SELFHTML-Forum2022-02-04T09:51:52Zhttps://forum.selfhtml.org/self/2022/feb/04/variabeln-aus-link-sollen-als-datei-angezeigt-werden-htaccess/1795870?srt=yes#m1795870basti1012basti1012@soforthilfe-forum.de2022-02-04T02:58:12Z2022-02-04T05:52:38ZVariabeln 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#m1795872Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2022-02-04T06:46:24Z2022-02-04T06:46:42ZVariabeln 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#m1795877Robert B.2022-02-04T08:29:47Z2022-02-04T08:29:47ZVariabeln 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#m1795880Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2022-02-04T08:53:59Z2022-02-04T09:10:08ZBeispieldomains<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#m1795873Rolf B2022-02-04T07:20:35Z2022-02-04T07:22:29ZVariabeln 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#m1795878Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2022-02-04T08:34:36Z2022-02-04T08:37:42ZVariabeln 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#m1795881Gunnar Bittersmannselfhtml@bittersmann.dehttps://bittersmann.de2022-02-04T09:08:59Z2022-02-04T09:08:59ZVariabeln 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#m1795879Robert B.2022-02-04T08:46:20Z2022-02-04T08:46:20ZVariabeln 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#m1795883Rolf B2022-02-04T09:51:52Z2022-02-04T09:51:52ZVariabeln 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#m1795882Robert B.2022-02-04T09:50:19Z2022-02-04T09:50:19ZVariabeln 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>