![]() |
Nginx: ta bort .php från URL
Tjenare!
Gick över från Apache - Nginx på dev servern idag man har lite problem, det enda jag vill göra är att ta bort .php från URL:er och ersätta med en / i slutet av URL:er. Just nu fungerar allt som körs på index.php bra, bara till att gå till www.example.com så körs ju indexfilen som vanligt, men går man till www.example.com/about/ (www.example.com/about.php) så får jag bara meddelandet: "File not found.", direktnavigering till: www.example.com/about.php fungerar fint. Men ja, Nginx verkar inte skriva om URL:erna korrekt så då hittar den inte PHP filen, hur löser jag detta? Har testat varenda svar som hittades via Google sökningar men nepp, inget fungerar, ibland verkar det som om svaren utgår från att man kör något MVC liknande (som tex WordPress) som alltid utgår från att man kör från index.php och ibland kanske index.php{query_string}, det gör jag inte i just detta fallet, vill bara att den skall ta bort .php filändelsen. Min Nginx config fil ser ut såhär: PHP-kod:
PHP-kod:
Några förslag? :D |
Anledning till att saker och ting inte läses in korrekt är för att URL är felaktig. Den försöker alltså läsa från example.com/about/style.css, istället från rooten. Lägg till ett "/" i början när du ska länka till saker, så läser den från rooten.
<img src="images/123.jpg"> - FEL <img src="/images/123.png"> - RÄTT Är sidan byggd på mycket PHP och använder include mycket, så behöver du göra en ändring även här. include("database.php"); - FEL include($_SERVER['DOCUMENT_ROOT'] . '/database.php'); - RÄTT |
Japp precis, men inte det som är problemet riktigt, inte ens www.example.com/bildmapp/bildfil1.jpg fungerar, så jag har inga problem med själva söklänkarna utan det är något strul med Nginx config filen
OBS: Bilderna fungerar (www.example.com/bildmapp/bildfil1.jpg) om jag kör med konfig filen exakt som i mitt första exempel, byter jag som sagt ut location / med det som är i mitt andra exempel så fungerar inte ens direktnavigering till bilderna. |
Har du read access till mappen/filerna i fråga?
|
Citat:
Fungerar ju att navigera till bilderna ibland beroende på Nginx config av ovanstående man väljer |
Citat:
include($_SERVER['DOCUMENT_ROOT'] . '/database.php'); - FEL include(__DIR__ . '/../database.php'); - RÄTT Då är din applikation transportabel och delar kan användas som bibliotek i andra applikationer så länge katalogstruktur behålls. |
Kan du lägga upp URL när /about/ fungerar men ej bilder m.m
|
Tyvärr har jag ingen URL just nu då jag kör den lokalt och använder mobilen som modem och begränsad bandbredd.
Iaf, min errorlogg: 2012/11/04 17:05:30 [error] 10243#0: *25 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.1.70, server: module, request: "GET /avatars/4.jpg HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "192.168.1.76:51001" Ska den verkligen försöka hämta avatar bilden genom fastcgi och fpm.sock? |
Citat:
|
Just nu kör jag Ubuntu 12.04 i en VM med VMWARE, värd OS:et är OS X (har dock samma problem i min dedikerade Ubuntu burk)
Hmm testat nu, bilderna fungerar om dom ligger i root, såfort jag slänger in dom i en mapp i root så fungerar dom inte. |
Citat:
Vart har du monterat (mount) NTFS (/etc/fstab). http://www.tuxfiles.org/linuxhelp/fstab.html Kan du posta den här? Jag _tror_ att du glömt att "berättat" från mounten att skicka med index nodes, därför mappar det konstigt. Ber även om ursäkt för mina hemska uttryck, har bara jobbat med Windows i skarpt läge så kan ej vanliga uttryck för resterande OS, hoppas du förstår vad jag menar. |
Hmm ok min fstab ser ut såhär: (tror den kommer formateras konstigt här i forumet, den ser dock alla redan konstigt formaterad ut när man öppnar den i Gedit)
Kod:
Ursäkta, kanske skulle berättat detta långt tidigare, själva VM:en är installerad på en extern hårddisk, anledningen är att den VM:en är tänkt att användas som en Dev server för lite olika webbprojekt, då jag flänger runt på massa olika platser och olika datorer vill jag kunna bära med på en VM istället för att installera Nginx, Mysql, PHP, APC, fastcgi osv osv på varenda dator jag råkar använda :D |
Testa detta:
Kod:
# /etc/fstab: static file system information. |
Ok skall testa det, tackar.
Kräver en ändring i fstab att jag restartar Samba eller reconnectar till min share? Håller på och slänger över en massa filer och krams till VM installationen så isåfall kanske jag inte skall ändra i fstab förräns allt har överförts klart? |
Citat:
Om den kodsnutten jag postade inte fungerar får vi leta vidare, nästan säker på att det har med index node (inode) att göra. |
Testat? Fungerade det?
|
Citat:
Skall fixa fstab uppdateringen sen om jag inte hittar en stabil konfig. |
Citat:
|
Citat:
Ändringen i fstab hjäpte tyvärr inte. Det är något skumt med min Nginx version, jag måste ändra server_name varenda gång jag ändrar i min config fil annars får jag felmeddelandet: nginx: [warn] conflicting server name "forum" on 0.0.0.0:51010, ignored ibland uppdateras inte config filen alls när jag restartar Nginx, vet inte vad som händer, jag har varken dubletter av config filen eller dubbla server värden. Jag har dessutom tagit bort alla vhosts filer i sites-enabled i nginx mappen men ändå fungerar sidorna som nu är borttagna, även efter jag restartat Nginx, så hmm, på något vis sparas eller cachas vhost filerna någonstans. |
Alla tider är GMT +2. Klockan är nu 02:34. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson