.htaccess Umleitung – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self .htaccess Umleitung Fri, 10 Mar 23 18:12:03 Z https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806872#m1806872 https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806872#m1806872 <p>Hallo,</p> <p>wie mache ich eine .htaccess-Umleitung, dass alle:</p> <ol> <li>http auf https umgeleitet werden?</li> <li>aus example.com/test -> example.com#test wird und</li> <li>alle Subdomains www.example.com auf example.com umgeleitet werden?</li> </ol> <p>Jörg</p> Es gibt nichts Neues unter der Sonne ... Fri, 10 Mar 23 19:28:55 Z https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806876#m1806876 https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806876#m1806876 <blockquote> <p>http auf https umgeleitet werden?</p> </blockquote> <ul> <li><a href="https://forum.selfhtml.org/self/2022/may/30/weiterleitung-von-domain-zu-domain/1799511#m1799511" rel="noopener noreferrer">https://forum.selfhtml.org/self/2022/may/30/weiterleitung-von-domain-zu-domain/1799511#m1799511</a></li> <li><a href="https://forum.selfhtml.org/self/2022/may/30/weiterleitung-von-domain-zu-domain/1799531#m1799531" rel="noopener noreferrer">https://forum.selfhtml.org/self/2022/may/30/weiterleitung-von-domain-zu-domain/1799531#m1799531</a></li> </ul> <blockquote> <p>aus example.com/test -> example.com#test wird</p> </blockquote> <p>GENAU so oder nach welchen Regeln? Wahrscheinlich brauchst Du für die Weiterleitung ein (PHP-)Skript, welches Du für File-Not-Found-Errors als zuständig deklarierst.</p> <blockquote> <p>alle Subdomains www.example.com auf example.com umgeleitet werden?</p> </blockquote> <p>Kommt drauf an, wie diese konfiguriert sind, aber im Kern wie oben. (Erster Link)</p> Es gibt nichts Neues unter der Sonne ... Sat, 11 Mar 23 12:08:08 Z https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806888#m1806888 https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806888#m1806888 <p>Soweit, so gut.</p> <pre><code class="block">RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </code></pre> <p>Das deckt die Punkte 1 und 3 ab.</p> <p>Anschließend dachte ich, Punkt 2 hiermit abzudecken, aber das klappt nicht:</p> <pre><code class="block">rewriteCond %{HTTP_HOST} example.com RewriteRule (.*)$ https://example.com#$1 </code></pre> <p>Was amche ich da falsch?</p> <p>Jörg</p> Es gibt nichts Neues unter der Sonne ... Sat, 11 Mar 23 12:51:18 Z https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806890#m1806890 https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1806890#m1806890 <blockquote> <p>Anschließend dachte ich, Punkt 2 hiermit abzudecken, aber das klappt nicht:</p> <pre><code class="block">rewriteCond %{HTTP_HOST} example.com RewriteRule (.*)$ https://example.com#$1 </code></pre> <p>Was mache ich da falsch?</p> </blockquote> <p>Du weißt nicht was Du tust. <strong>Das würde immer wieder neu umleiten.</strong> Mein Vorschlag war ein Skript.</p> <p>Es folgt ein <strong>Beispiel</strong>:</p> <p>Also in .htaccess:</p> <pre><code class="block">ErrorDocument 404 /search.php </code></pre> <p>Damit wird die search.php immer gestartet, wenn die angeforderte Seite nicht als Dokument bzw. Ressource existiert und wird mit allen notwendigen Daten gefüttert.</p> <p>Die kann dann z.B. so aussehen (ich hab das nicht getestet, es ist aber trivial genug um wahrscheinlich zu funktionieren):</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment"># Array mit alten und neuen URIs:</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/test'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/index.php#test'</span><span class="token punctuation">;</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/foo.html'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/index.php#foo'</span><span class="token punctuation">;</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/bar.html'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/zur_bar.html'</span><span class="token punctuation">;</span> <span class="token comment"># Run!</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token keyword">isset</span><span class="token punctuation">(</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'REQUEST_URI'</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">http_response_code</span><span class="token punctuation">(</span> <span class="token number">301</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'Location: '</span> <span class="token operator">.</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'REQUEST_URI'</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">exit</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">http_response_code</span><span class="token punctuation">(</span> <span class="token number">404</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> <span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>de<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>Error 404<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>hr</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Oops. Die angeforderte Seite wurde nicht gefunden.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> <p>Die Suche und die Antwort lassen sich auf (Beispiel → ) <a href="https://code.fastix.org/htaccess" rel="nofollow noopener noreferrer">mannigfaltige</a> und (Theorie → ) <a href="https://wiki.selfhtml.org/wiki/PHP/Tutorials/404-Fehlerseite" rel="nofollow noopener noreferrer">phantastische Weise</a> erweitern...</p> Es gibt nichts Neues unter der Sonne ... Tue, 14 Mar 23 13:50:02 Z https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1807009#m1807009 https://forum.selfhtml.org/self/2023/mar/10/htaccess-umleitung/1807009#m1807009 <p>Hallo Jörg,</p> <blockquote> <p>Es folgt ein <strong>Beispiel</strong>:</p> <p>Also in .htaccess:</p> <pre><code class="block">ErrorDocument 404 /search.php </code></pre> <p>Damit wird die search.php immer gestartet, wenn die angeforderte Seite nicht als Dokument bzw. Ressource existiert und wird mit allen notwendigen Daten gefüttert.</p> <p>Die kann dann z.B. so aussehen (ich hab das nicht getestet, es ist aber trivial genug um wahrscheinlich zu funktionieren):</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span> <span class="token comment"># Array mit alten und neuen URIs:</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/test'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/index.php#test'</span><span class="token punctuation">;</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/foo.html'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/index.php#foo'</span><span class="token punctuation">;</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'/bar.html'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'/zur_bar.html'</span><span class="token punctuation">;</span> <span class="token comment"># Run!</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token keyword">isset</span><span class="token punctuation">(</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'REQUEST_URI'</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">http_response_code</span><span class="token punctuation">(</span> <span class="token number">301</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'Location: '</span> <span class="token operator">.</span> <span class="token variable">$Forwards</span><span class="token punctuation">[</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'REQUEST_URI'</span><span class="token punctuation">]</span><span class="token punctuation">]</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">exit</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">http_response_code</span><span class="token punctuation">(</span> <span class="token number">404</span> <span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> <span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span> <span class="token attr-name">lang</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>de<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>Error 404<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>hr</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>p</span><span class="token punctuation">></span></span>Oops. Die angeforderte Seite wurde nicht gefunden.<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>p</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span> </code></pre> </blockquote> <p>Danke, das funktioniert sehr gut und ist sehr variabel.<br> Ich habe Dein Beispiel noch etwas ausgeweitet und bin sehr zufrieden damit.</p> <p>Jörg</p>