YOURLS .htaccess

  • Hallo zusammen,

    ich habe YOURLS unter example.com/yourls installiert. Unter example.com selbst läuft LittleLink. Die mit YOURLS gekürzten Links sollen aber ganz normal über die reine Domain example.com laufen, ohne dem Verzeichnis yourls.

    Dazu habe ich folgendes aus den YOURLS Docs übernommen: Give YOURLS its own directory


    Jedoch ist und bleibt das Ergebnis von example.com/xyz eine 404 Page Not Found. Wenn ich den gekürzten Link unter example.com/yourls/xyz aufrufe, funktioniert er wie gewohnt. Klar.

    Apache Configuration: .htaccess unter example.com
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_HOST} example.com$
    RewriteCond %{REQUEST_URI} !^/yourls/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /yourls/$1
    RewriteCond %{HTTP_HOST} example.com$
    RewriteRule ^(/)?$ yourls/yourls-loader.php [L]
    </IfModule>
    Apache Configuration: .htaccess unter example.com/yourls
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /yourls/
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ /yourls/yourls-loader.php [L]
    </IfModule>

    Habe ich irgendetwas falsch gemacht?
    Ich meine, ich habe ja nichts geändert, außer die Domain und das Verzeichnis.

    [RS] 2000 G9 | Cyber Quack

    [VPS] 2000 ARM G11 | 1000 G9 | 200 G8 | Secret | A | mikro G11s | 4x nano G11s
    [WH] 8000 SE | 4000 SE | 2000 SE

  • https://httpd.apache.org/docs/trunk/mod/mod_rewrite.html


    Ich denke, dass bei Deinem Ruleset das Ergebnis

    Code
    /yourls/yourls/yourls-loader.php

    lautet.

    Die RewriteBase würde ich dann auf / lassen oder, wenn Du es drinnen lässt, die RewriteRule ohne das /yourls/ davor nehmen.

    Code
    /yourls-loader.php

    In dem von Dir geposteten Beispiel sind übrigens die RewriteCondition -Statements implizit mit [AND] verknüpft. Es müssen also alle Regeln zutreffen.


    Und bezüglich der RewriteRule ^(.*)$ - bei (.*) ist es glaube ich völlig egal, ob Du zusätzlich auf ^und $ prüfst.


    Anders wäre es bei -nur als Bespiel, das hier unzutreffend ist:

    Apache Configuration
    RewriteRule ^/yourls/(.*)$ /yourls/yourls-loader.php$1 [L]