2016-06-13 113 views
1

我想在ubuntu上的nginx服務器上運行一個php應用程序。我確實把我所有的文件放在var/www/mydomain.com.html中,它完美地呈現了我的index.php。但是,即使這些文件存在於同一目錄中,也會顯示404 Not Found for every page。Nginx顯示404沒有找到每個頁面,但主頁

這是我的服務器塊配置。

server { 
listen 80; ## listen for ipv4; this line is default and implied 
listen [::]:80; ## listen for ipv6 

root /var/www/app.limoposter.com/html; 
index index.php index.html index.htm; 

server_name app.limoposter.com www.app.limoposter.com; 

location/{ 
    try_files $uri $uri/ =404; 

} 

error_page 404 /404.html; 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
    root /usr/share/nginx/html; 
} 

location ~ \.php$ { 
    try_files $uri =404; 
    fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 

}

回答

1

這似乎是你有一個.htaccess到您的index.php 每個請求由於nginx的不理解.htaccess文件,你就必須重寫這個使用nginx的哪些路由 見https://winginx.com/en/htaccess

編輯: 我下載了你的.htaccess和使用上面提到的轉換器: 這是輸出:

autoindex off; 
location/{ 
if ($script_filename !~ "-d"){ 
rewrite ^/login/(.*)/$ /login.php?type=$1 break; 
} 
if ($script_filename !~ "-d"){ 
rewrite ^/dashboard/(.*)/$ /dashboard.php?show=$1 break; 
} 
if ($script_filename !~ "-d"){ 
rewrite ^/admin/(.*)/$ /admin.php?module=$1 break; 
} 
if ($script_filename !~ "-d"){ 
rewrite ^/(.*)/$ /$1.php break; 
} 
if ($request_uri ~ "storage/(\d+)_(.*)$"){ 
rewrite ^/storage/(\d+)_(\d+)/([a-zA-Z0-9_]+).([a-zA-Z0-9_\.]+)$ /download.php?folder=$1_$2&file=$3.$4 break; 
} 
} 
+0

我應該把這個rewrited htaccess放在服務器塊,nginx.conf還是其他地方? – Mohan

+0

這應該工作,但要更有組織,你可以創建一個額外的文件 – Sebastian

+0

感謝您的建議:) – Mohan