Weiterleitung mit .htaccess funktioniert nicht richtig, wenn / am Ende fehlt

Lesezeit: 6 Minuten

Benutzer-Avatar
Verrückter Junge

Ich habe WordPress Seite mit WPML Eingerichtet. Ich habe in letzter Zeit 2 Dinge gemacht:

Dies geschieht, um SEO zu verbessern. Aber während ich das ohne große Probleme zum Laufen gebracht habe, verwende ich:

 # BEGIN HTTPS
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{SERVER_PORT} ^80$
 #RewriteCond %{HTTPS} !^on$
 #RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
 RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
 </IfModule>
 # END HTTPS
 # BEGIN WordPress
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
 </IfModule>

 # END WordPress

Im apache.conf Datei ServerName domain.xyz, ServerAlias domain.pl www.domain.pl usw. Ich habe Probleme mit den meisten meiner alten Blog-Beiträge, die in unterschiedlicher Form im Internet kursieren. Zum Beispiel:

Es scheint das letzte / macht einen großen Unterschied.

Ich habe geplant, alle Weiterleitungen in sogar direkter Form 1 zu 1 zu einer neuen Domain hinzuzufügen, aber da es teilweise funktioniert, teilweise nicht, bin ich irgendwie verloren … und ich bin mir nicht sicher, wie ich sie richtig übersetzen könnte.

BEARBEITEN:

Ich habe mehrere Optionen ausprobiert, sogar eine, die angeblich alle Links so umschreibt, dass sie mit / enden, und es schlägt immer noch fehl.

# BEGIN HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteCond %{SERVER_PORT} ^80$
#RewriteCond %{HTTPS} !^on$
#RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} !^on$
#RewriteRule (.*) https://evotec.xyz/$1 [R=301,L]
#RewriteRule (.*) https://%{SERVER_NAME%}/$1 [R=301,L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|js)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]


</IfModule>
# END HTTPS

Eine weitere Aktualisierung:

Es funktioniert also nicht ganz nicht für alle Schrägstriche gegen Nicht-Schrägstriche. Es geht mehr um eine Art Übersetzung, die nicht stattfindet, wenn sie auf eine alte Domain verweist.

Ich habe versucht, Redirect Checker zu verwenden, um zu sehen, wie es funktioniert (am richtigen Beispiel), aber ich kann daraus keine Bedeutung machen.

http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1 301 Dauerhaft umgezogen
https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1/
301 Dauerhaft umgezogen
https://evotec.xyz/hub/scripts/office365-addbulkemailaddressses-ps1/
200 okay

http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1/ 301 Dauerhaft umgezogen
https://evotec.xyz/hub/scripts/office365-addbulkemailaddressses-ps1/
200 okay

https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1
404 Nicht gefunden

Je mehr Optionen ich ausprobiere, desto seltsamer wird es. Während der RedirectChecker eine Sache zu zeigen scheint … Browser verhält sich etwas anders und funktioniert beim ersten Eintrag sowieso nicht und verursacht sofort 404

Bearbeiten:

Wenn ich nur “WordPress”-Daten hinterlasse, gilt Folgendes:

Es funktioniert nur richtig, wenn ich die richtige/neue Domain verwende, dann funktioniert alles richtig:

Ich denke, wenn ich es nicht umleiten kann, werde ich es so lassen, wie es ist, und einfach aufgeben.

  • Sieht nach einem Problem mit der DirectorySlash-Direktive aus. Überprüfen Sie dies Verknüpfunges könnte helfen.

    – Felipe Alameda A

    8. August 2016 um 8:14 Uhr

  • ich habe meinen Beitrag aktualisiert. Es scheint nicht so zu sein, da die Slash-Direktive des Verzeichnisses teilweise zu funktionieren scheint.

    – Verrückter Junge

    8. August 2016 um 8:40 Uhr

  • Können Sie alle Regeln aus .htaccess entfernen und nur die Standard-WP-Regel dazwischen behalten # BEGIN WordPress und # END WordPress. Löschen Sie dann Ihren Browser-Cache vollständig und geben Sie dann alle 4 URLs ein, um zu sehen, auf welche noch weitergeleitet wird https://domain.xyz/<url>

    – anubhava

    11. August 2016 um 10:25 Uhr

  • Tat dies. Hauptbeitrag aktualisiert.

    – Verrückter Junge

    11. August 2016 um 15:01 Uhr

Ich habe es tatsächlich gelöst, indem ich das SEO Redirection Premium-Plugin für WordPress verwendet habe.

Geben Sie hier die Bildbeschreibung ein

Es ist in der Lage, defekte Links ohne / umzuleiten. In diesem Fall habe ich es manuell gemacht, aber ich arbeite an einer Möglichkeit, es mit Regex globaler zu machen. Muss nur noch den richtigen finden.

Geben Sie hier die Bildbeschreibung ein

Benutzer-Avatar
WebzinSamir

Ein … kreieren .htaccess Datei mit dem folgenden Code, wird sichergestellt, dass alle Ihre Verzeichnisse und Seiten Ihrer alten Domain korrekt auf Ihre neue Domain umgeleitet werden. Das .htaccess Die Datei muss im Stammverzeichnis Ihrer alten Website abgelegt werden (d. h. im selben Verzeichnis, in dem sich Ihre Indexdatei befindet).

Options +FollowSymLinks
RewriteEngine on

RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]

Bitte ersetzen www.newdomain.com im obigen Code mit Ihrem tatsächlichen Domainnamen.

Zusätzlich zur Weiterleitung würde ich vorschlagen, dass Sie jede Backlinking-Site kontaktieren, um ihren Backlink so zu ändern, dass er auf Ihre neue Website verweist (für SEO).

Hinweis* Diese .htaccess-Umleitungsmethode funktioniert NUR auf Linux-Servern, auf denen das Apache Mod-Rewrite-Modul aktiviert ist.

Und dann für http zu https :

RewriteCond %{HTTP_HOST} ^domain\.com.au$ [OR]

RewriteCond %{HTTPS} !on

RewriteRule ^(.*)$ https://www.domain.com.au/$1 [R,L]

Und zusätzlich kannst du auch den folgenden Code in wp-config.php hinzufügen

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);

define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

Hinweis*: Dies funktioniert möglicherweise nicht, wenn Sie es nicht ausprobiert haben, aber Sie sollten es einmal versuchen und mir Bescheid geben.

  • Das scheint nicht das Problem anzugehen. Ich habe mehrere Domains (.xyz und .pl). Wir sprechen über ein seltsames Verhalten von /. Sie sollten auskommentierte Texte bemerken, in denen ich mehrere ähnliche Vorschläge ausprobiert habe.

    – Verrückter Junge

    16. August 2016 um 7:07 Uhr

1385960cookie-checkWeiterleitung mit .htaccess funktioniert nicht richtig, wenn / am Ende fehlt

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy