Ich muss domain.com/abcdef.html zu domain.com/abcdef umleiten und der Inhalt der neuen URL sollte domain.com/abcdef.html sein.URL umleiten und ändern von HTML zu keiner HTML htaccess
Ich wirklich kämpfen hier. Ich kann erreichen, den Inhalt vom HTML zu erhalten, ohne das HTML in der URL zu haben, aber dann sind beide URLs verfügbar.
Wenn ich versuche, beides zu erreichen, bekomme ich eine Endlosschleife und eine ERR 500, aber ich habe keine Ahnung, wie ich diese Endlosschleife verhindern kann.
so mein Versuch ein - macht beide URLs mit dem gleichen Inhalt wie folgt aussieht:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
Die zweite Regel withtout die ersten beiden Zeilen genau das gleiche ist:
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
resultierenden in eine endlose Schleife. Meine Recherche brachte mich nur zu Lösungen für einen oder einen Versuch mit der index.php. Aber ich suche nach einer htaccess-only-Lösung.
Ist es möglich?
EDIT: Ich verstehe, warum die endlessloop passiert, bitte ich blabla.html -> Regel 1 macht es blabla und Anfragen wieder, Regel 2 macht es Anfragen wieder blabla.html und so weiter. Aber wie kann ich das verhindern?
EDIT 2: Also habe ich versucht, wie durch starkeen vorgeschlagen, und hatte dies:
RewriteEngine On
RewriteCond %{ENV_REDIRECT_STATUS} 200
RewriteRule^- [L]
RewriteBase/
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
die zur endlessloop führen nach wie vor. Die Verwendung mit dem RewriteCond steht immer noch zur Verfügung (blabla.com/content.html und blabla.com/content)
Leider ist es nicht Apache 2.4, also konnte ich das END-Tag nicht versuchen, aber ich versuche, meinen Hoster zu erreichen frag sie, wenn ich sie aktualisiere.
Oder habe ich dich falsch verstanden und etwas mit dem htaccess gemischt?
EDIT 3: Also, da mein Code funktionieren sollte, aber nicht, hier der ganze htaccess, um sicherzustellen, dass es nichts anderes gibt, das den **** vom Arbeiten blockiert.
AuthName "nottellingyou"
AuthType Basic
AuthUserFile /home/www/top/secret/.htpasswd
AuthGroupFile /dev/null
require valid-user
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV_REDIRECT_STATUS} 200
RewriteRule^- [L]
RewriteBase/
RewriteRule ^(.*)\.html$ /$1 [L,R=301]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Hey danke für die Hilfe, aber leider würde es für mich nicht funktionieren! Könnten Sie bitte meine Bearbeitung überprüfen, wenn ich es richtig gemacht habe? –
@marcel Sie verwenden die Regel nicht korrekt. Es sollte unter RewriteEngine in Zeile sein. – starkeen
vielen Dank, ich habe es falsch gelesen wie zuvor RewriteEnginge irgendwie. Aber leider gleicher Effekt. (editedhow sieht jetzt so aus -> führt zu loop für mich) –