WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Förbättra htaccess-fil (https://www.wn.se/forum/showthread.php?t=1060486)

Johnny Viking 2014-01-16 09:12

Förbättra htaccess-fil
 
Hejsan! Jag har den här htaccess-filen.

Den tar allt, och skickar till index.php (php-ramverk bootstrapladdare)
Även 404 på vanliga .JS-filer. Vilket bara är dumt att lägga på ramverket att sköta, kan jag tycka.

Den tar t.ex /underkatalog, och ger en evighetsredirect.
Denna underkatalog har en egen index.php som bör visas.
Jag måste skriva /underkatalog/index.php för att få sidan att visas.

Jag vet att jag kan stoppa fler .htaccess i underkataloger, men det känns fel?
Jag tror root-htaccessfilen kan förbättras.

Kan någon här ge sig på det och få beteendet som jag vill?

Kod:

<IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]

        # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>


Johnny Viking 2014-01-16 09:22

Ska nämna att det är

Kod:

Redirect Trailing Slashes...
        RewriteRule ^(.*)/$ /$1 [L,R=301]

som såklart orsakar en redirect loop.

Kimppa 2014-01-16 09:53

Exempel för root/underkatalog/index.php:

Citat:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ /index.php?q=$1 [L,NC,QSA]

Johnny Viking 2014-01-16 10:40

Ja, då måste man lägga den i underkatalogen. Eller hur? Tänkte att huvud-htaccessfilen ska lösa även underkatalogerna, om index.php finns.

Kimppa 2014-01-16 11:08

Nej, det går bra att ha allt i samma fil. Jag använder endast 1 .htaccess-fil, men har flera "undersidor" som allihop ligger i root-katalogen. Det enda jag märkt som kan strula ibland är länkar & bilder, man får starta URLerna till de med src="/img/filnamn.jpg".

Kimppa 2014-01-16 11:10

Ett annat exempel:

Citat:

# root/dir/?query
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^dir/([^/]*)$ /dir.php?q=$1 [L,NC,QSA]
Här ligger dir.php i root-katalogen, och den har en query.
URLen till sidan blir: http://root.com/dir/_GETquery

Om det hjälper.


Alla tider är GMT +2. Klockan är nu 06:32.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson