WN

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

grinditwp 2009-01-14 10:57

Hej,
Jag testar på att leka lite med mod_rewrite.

Adresserna ser nu ut t.ex. index.php?c=naeringsliv&i=test

Så har jag fiffigt nog fixa en htaccess-fil med följande mod_rewrite:
Kod:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/ /sidan/index.php?c=$1&i=$2 [NC]

Det verkar fungera fint... men, det verkar som att alla bilder och css och dylikt nu försöker använda nya adressen för att hitta det de ska.

Så jag lade in en liten base-tagg

Kod:

<base href="http://minsida.se/sidan/" />
Det verkar som det löser bilderna. Men mina css filer verkar inte fungera. Får upp sidan, men helt utan layout, ja det som återfinnes i css-filerna.
Någon som har någon aning om vad som går fel?

Jimpsson 2009-01-14 11:04

Utgå alltid från root om du använder mod_rewrite för att fixa urler.

Tex:
<link href="/style.css" rel="stylesheet" type="text/css" />

Sen i CSS:en gör du samma sak med bilderna osv.

grinditwp 2009-01-14 11:44

Citat:

Originally posted by Rokkan1@Jan 14 2009, 12:04
Utgå alltid från root om du använder mod_rewrite för att fixa urler.

Tex:
<link href="/style.css" rel="stylesheet" type="text/css" />

Sen i CSS:en gör du samma sak med bilderna osv.

Det är det jag tycker jag gör...

Kod:

<link href="include/css/default.css" rel="stylesheet" type="text/css" media="all" />
Men det vill ej fungera ändå....

Gör jag rätt som använder base;

Kod:

<base href="http://minsida.se/sida/" />
Bilder som ligger direkt på sidorna fungerar, när jag använder base, t.ex.

Kod:

<img id="logotype" src="image_layout/layout_loggo.png" />

webbaccess 2009-01-20 15:24

Om jag inte är fel på det så menar Rokkan1 att du ska ha tex.

<link href="/sida/include/css/default.css" rel="stylesheet" type="text/css" media="all" />
istället för
<link href="include/css/default.css" rel="stylesheet" type="text/css" media="all" />
alltså att du bestämmer från "sidrooten" att du ska använda det precis som att du skriver
minsida.se/sida/include/css/default.css istället för att du har den att leta upp det rätt efter var du är i mapparna

guran 2009-01-21 04:05

Du får nog lägga in ett litet undantag för de filer som inte ska "skrivas om". T.ex.:

RewriteRule !(\.gif|\.jpe?g|\.png|\.css|\.php|\.html|\.pdf) $ ^([^/]+)/([^/]+)/ /sidan/index.php?c=$1&i=$2 [NC]

crazzy 2009-01-21 08:02

Lägg in detta ovanför dina RewriteRule's:
Kod:

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d

Det gör så att din RewriteRule bara används om det inte finns en fysisk fil på servern med den urlen som används.


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

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