Wie können WordPress und YOURLS auf Root-Ebene friedlich koexistieren?

Lesezeit: 4 Minuten

Benutzer-Avatar
Chris Thompson

Ich möchte mit YOURLS einen besseren Link-Shortener-Service erstellen. Ich habe mir dafür eine kurze URL besorgt: sly.pe. YOURLS ist installiert und sly.pe/admin ist zugänglich.

Ich würde auch gerne WordPress verwenden, um den größten Teil der verbraucherorientierten Website unter der URL: sly.pe zu betreiben. Die Idee ist, dass ich möchte, dass sich Benutzer mit WordPress und einem Registrierungs-Plugin wie OneAll Social für die Website registrieren. Sobald sie authentifiziert sind, werden sie sowohl für YOURLS als auch für WordPress angemeldet und zu einer URL wie sly.pe/home umgeleitet, die WordPress als Website verwendet, aber YOURLS (sly.pe/admin für diesen Benutzer) ist eingebettet und irgendwie zugänglich.

Beide Dienste nehmen .htaccess-Änderungen vor. Wenn ich die Datei so lasse, wie sie ist, kann ich anscheinend keine andere WordPress-URL als sly.pe haben, aber YOURLS funktioniert gut. Wenn ich einen YOURLS-Code auskommentiere, kann WordPress andere Verzeichnisse verwenden, aber dann funktioniert YOURLS nicht. Wie kann ich beides schön koexistieren lassen? Oder zumindest die gewünschten WordPress-URLs definieren und diese zum Laufen bringen?

(Das Auskommentieren des YOURLS-Codes bringt WordPress zum Laufen, bricht aber YOURLS):
.htaccess:

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>
# END YOURLS

# 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

Ich konnte YOURLS dazu bringen, mit WordPress zu arbeiten. So habe ich es gemacht …

Ich habe YOURLS in niemannross.com/links platziert – so sieht für mich eine Weiterleitung aus http://niemannross.com/link/rlunchlessons

Installiere das Umleitung Plugin von John Godley in Ihrer Kopie von WordPress.

Schau mal in WordPress:Admin:Tools:Redirection. Am oberen Rand befinden sich mehrere Registerkarten. Sie sollten Umleitungen | sehen Gruppen | Protokolle | 404s | Importieren/Exportieren | Optionen | Die Unterstützung.

Wählen Weiterleitungen

Auswählen Neue Umleitung hinzufügen

Quell-URL: /Verknüpfung/.* – Regex auswählen.

Ziel-URL: /link/dein-loader.php

Gruppe: Was auch immer in Ihrem Setup Sinn macht. Ich habe wordpress:redirections gewählt

Das funktioniert bei meiner Installation.

Einfache Antwort ist: Sie können nicht. Sowohl WordPress als auch YOURLS (bitte YOURLS, nicht YourLS) müssen Serveranfragen verarbeiten, um das erwartete Ergebnis zurückzugeben (z http://sho.rt/blahmuss jede App prüfen, ob blah ist der Inhalt, den es verwaltet)

Lange Antwort: Sie sollten nicht, weil alle der folgenden.

Grundsätzlich benötigen Sie etwas, das funktioniert, wenn:

  • blah ist ein WP-Artikel, aber keine DEINE Kurz-URL
  • blah ist eine YOURLS Kurz-URL, aber kein WP-Artikel
  • blah ist weder ein WP-Artikel noch eine DEINE Kurz-URL
  • optional entscheiden, was wann zu tun ist blah ist sowohl ein WP-Artikel als auch eine DEINE Kurz-URL

Ihr Code müsste auch:

  • verhindern, dass WP einen “Slug” erstellt, der bereits eine IHRE Kurz-URL ist
  • verhindern, dass YOURLS eine kurze URL erstellt, die bereits mit einem WP-Slug übereinstimmt

Sie müssten Code dafür sowohl im WP-Bereich als auch im YOURLS-Bereich haben.

Fazit: Viele Grenzfälle, mit denen man sich befassen muss. Was in einigen Fällen auf Ihrer Seite funktioniert, funktioniert möglicherweise in anderen Fällen nicht, auf Ihrer Seite oder mit anderen.

  • Vielen Dank für die Antwort. Ich werde diese Einschränkung umgehen, indem ich eine Subdomain verwende, etwa home.slype.com. Danke für die Erklärung. Chris

    – Chris Thompson

    16. Mai 2016 um 22:45 Uhr

Ich denke, Sie müssen das von @Ozh erwähnte Problem umgehen, aber hier ist ein Plugin, das es Ihren WordPress-Benutzern erleichtert, YOURLS zu verwenden: https://wordpress.org/plugins/yourls-link-creator/

Sie können nicht, ich habe verschiedene Wege ausprobiert, vielleicht mit dem neuen Apache 2.4 if else Anweisung werden Sie, aber ich bin kein Experte für diese Befehle, ich möchte mitteilen, was ich getan habe, um die Shortener-Option auf der Stammseite und die HTML-Site in einem Unterverzeichnis zu haben. Mit dieser Lösung können Sie den Leuten immer noch eine normale URL für die Website (z. B. sho.rt):

Legen Sie Ihre Website in einem Ordner unter root mit einem Namen fest, z. B. “w“, das heißt, es wird um “sho.rt/w

dann benutze diese .htaccess

# BEGIN YOURLS
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ /yourls-loader.php [L]
    RewriteRule ^$ /w [L]  
</IfModule>
# END YOURLS

Dies gibt Ihnen die Möglichkeit, es weiterhin zu verwenden kurz als Ihre Website-Adresse, wenn der Benutzer keinen Unterordner in der URL übergibt, aber wenn dies der Fall ist, wird er zuerst Ihren einchecken und zu Ihren Ordnern wechseln, wenn nichts gefunden wird.

Eine weitere Sache, vergessen Sie nicht hinzuzufügen “w” in dem $yourls_reserved_URL Array ein /user/config.php (Ihre Konfigurationsdatei)

1027900cookie-checkWie können WordPress und YOURLS auf Root-Ebene friedlich koexistieren?

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

Privacy policy