Kom ihåg mig?
Home Menu

Menu


Nginx: ta bort .php från URL

 
Ämnesverktyg Visningsalternativ
Oläst 2012-11-04, 15:22 #1
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Standard 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:


server 
{


  
listen 51001# listen also for IPv4 traffic on "regular" IPv4 sockets

  
server_name kaka;

  
access_log  /var/log/nginx/$host.access.log;
  
error_log   /var/log/nginx/error.log;

  
root    /var/www/kaka;
  
index   index.php index.html;

  
## Block bad bots
  
if ($http_user_agent ~* (HTTrack|HTMLParser|libcurl|discobot|Exabot|Casper|kmccrew|plaNETWORK|RPT-HTTPClient)) {
    return 
444;
  }

  
## Block certain Referers (case insensitive)
  
if ($http_referer ~* (sex|vigra|viagra) ) {
    return 
444;
  }

  
## Deny dot files:
  
location ~ /\. {
    
deny all;
  }

  
## Favicon Not Found
  
location = /favicon.ico {
    
access_log off;
    
log_not_found off;
  }

  
## Robots.txt Not Found
  
location = /robots.txt {
    
access_log off;
    
log_not_found off;
  }

  
location / {
    
try_files $uri $uriindex.php;
    
rewrite ^(.+)/ /$1.php;
  }

  
location ~ \.php$ {
    include /
etc/nginx/fastcgi.conf;
    
fastcgi_pass unix:/var/run/php5-fpm.sock;
  }


  
### NginX Status
  
location /nginx_status {
  
stub_status on;
    
access_log   off;
  }

  
### FPM Status
  
location ~ ^/(status|ping)$ {
    
fastcgi_pass unix:/var/run/php5-fpm.sock;
    
access_log      off;
  }


Edit: Ändrar jag om Location / till denna neranför så fungerar www.example.com/about/ men däremot fungerar absolut inga bilder på servern alls av någon skum anledning

PHP-kod:
location / {
    
try_files $uri $uriindex.php;
    
rewrite ^(.+)/ $1.php;
  } 

Några förslag?

Senast redigerad av JesperA den 2012-11-04 klockan 15:24
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 15:46 #2
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
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
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 15:57 #3
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
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.
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 16:28 #4
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Har du read access till mappen/filerna i fråga?
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 16:42 #5
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
Citat:
Ursprungligen postat av yakuzaemme Visa inlägg
Har du read access till mappen/filerna i fråga?
Japp, det tror jag iaf: http://cl.ly/image/0q3m3W2T0s3L

Fungerar ju att navigera till bilderna ibland beroende på Nginx config av ovanstående man väljer
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 16:47 #6
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Citat:
Ursprungligen postat av yakuzaemme Visa inlägg
include("database.php"); - FEL
include($_SERVER['DOCUMENT_ROOT'] . '/database.php'); - RÄTT
include("database.php"); - FEL
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.
Clarence är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 16:48 #7
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Kan du lägga upp URL när /about/ fungerar men ej bilder m.m
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 17:10 #8
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
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?
JesperA är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 17:22 #9
yakuzaemmes avatar
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2012
Inlägg: 773
yakuzaemme yakuzaemme är inte uppkopplad
Mycket flitig postare
yakuzaemmes avatar
 
Reg.datum: Jun 2012
Inlägg: 773
Citat:
Ursprungligen postat av JesperA Visa inlägg
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?
Hm.. Är ingen expert på just detta område men jag kan ha en aning om problemet. Iom. att du kör lokalt, vilket OS sitter du på? OSX, eller typ WMWare?

Senast redigerad av yakuzaemme den 2012-11-04 klockan 17:24
yakuzaemme är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-04, 17:40 #10
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
JesperA JesperA är inte uppkopplad
Medlem
 
Reg.datum: Jul 2008
Inlägg: 214
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.
JesperA är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 11:31.

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