WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   .htaccess (https://www.wn.se/forum/showthread.php?t=1038422)

pontus 2009-10-07 19:04

.htaccess
 
Har bankat mitt huvud i väggen ett tag över .htaccess. Kan någon peka på vart problemet ligger:

RewriteRule ^(.*)$ index.php?q=$1 [L]

Detta vill jag uppnå:

doman.com/vad (doman.com/index.php?q=vad)
doman.com/index.php (doman.com/index.php?q=index.php)
doman.com/img/gif/document.pdf (doman.com/index.php?q=img/gif/document.pdf)

Med andra ord, index.php är den ända filen som finns på servern och allt som skrivs in efter doman.com/ ska hanteras av index.php filen.

Problemet är att rewriten ovan ger följande resultat:
doman.com/h2h2/h2h (doman.com/index.php?q=index.php)
doman.com/test (doman.com/index.php?q=index.php)

Någon som har insiktsfulla tips, brukar inte ha problem med htaccess men har alldrig försökt ge mig på att skriva om *allt`*, blir väll en konflikt med index.php av något slag.... ;)

EDIT: Fick insperation till detta av a9, är ju underbart att kunna skriva a9.com/sokord för att söka, slippa besöka sidan först.

tartareandesire 2009-10-07 19:14

Du är på rätt väg, detta bör fungera:

Kod:

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

QSA är givetvis valfritt men kan ibland vara trevligt att ha med.

PS. Varför blir det tomma rader i slutet av kodblocket? DS.

pontus 2009-10-07 19:35

Jag bugar och bockar, det funkar. Hade säkerligen tagit mig timmar att lista ut detta. ;) Förstår inte vad du gjorde, 99% av gångerna jag använder htaccess handlar det om basicgrejer där mina kunskaper räcker alledes utmärkt. hehe

Igen, tack för hjälpen. ;)

Clarence 2009-10-07 19:47

Citat:

Ursprungligen postat av tartareandesire (Inlägg 20325286)
PS. Varför blir det tomma rader i slutet av kodblocket? DS.

Det ska vara fixat nu. Lite dum CSS i vad jag tror var vbulletins default-kod.

pontus 2009-10-07 19:53

Ok, dags för en tilläggsfråga.

doman.com/hej?hej blir doman.com/index.php?q=hej. Antar att man behöver decoda "?" i htaccess på något vis? förstår att doman.com/index.php?q=hej?hej blir lite skumt. Går det att göra så att allt skickas till index?

Har jag totalt missat något? Är tyvärr inte så haj på apache-servrar eller processerna bakom php, vet inte hur jag ska hantera detta... hehe

Jonas 2009-10-07 23:47

doman.com/hej?what=do&hello=world så skickas det 3st GET variablar:
* q = hej
* what = do
* hello = world

QSA i .htaccess tillåter detta. Ta bort QSA så får du bara en (q = hej )

pontus 2009-10-09 21:05

Kan göra en uppdate om någon annan skulle ha nytta av detta, om jag vill att all text ska skickas till skriptet så använder jag bara:

$string = substr($_SERVER["QUERY_STRING"], 2);

http://www.domain.com/hem&?fds&fgsdsdf=dfs3
=>
http://www.domain.com/q=hem&?fds&fgsdsdf=dfs3
=> $string = hem&?fds&fgsdsdf=dfs3 :)


Alla tider är GMT +2. Klockan är nu 19:01.

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