我寫了一個應用程序,在Apache上,沒有問題獲取url.com/home/index/test
的參數,並返回/home/index/test
當我在PHP中回聲。在nginx上當我去url.com/?something=test
它返回test
如何使用nginx獲取url參數?
但是,當我把相同的應用程序放在nginx上它只是返回一個空白的白頁。網絡標籤說200
,所以它不會爲我返回任何錯誤。這是我的nginx塊。我不認爲這是代碼相關的。我認爲它的服務器端。
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/c/public;
index index.php index.html index.htm;
server_name server_domain_or_IP;
location/{
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
try_files $uri /index.php =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;
}
}
編輯:將PHP代碼
這是處理的URL
<?php
class App
{
protected $controller = 'home';
protected $method = 'index';
protected $params = [];
public function __construct()
{
return print_r($this->parseUrl());
}
public function parseUrl()
{
if(isset($_GET['url']))
{
return $url = explode('/', filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL));
}
}
}
這是控制器
<?php
class Home extends Controller
{
public function index()
{
echo 'home/index';
}
}
你可以在我的應用程序文件看完整的回購她Ëhttps://github.com/CircleFramework/Circle/tree/0.1-dev
這是我fastcgi_params
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param REDIRECT_STATUS 200;
您可以添加您的php代碼和nginx fastcgi_params文件內容嗎? – LFI
補充說@盧卡斯 – TheDizzle