1
首先,請原諒我,因爲我對nginx完全陌生。nginx重寫爲php文件 - 正在下載文件
單個站點,在根目錄下運行Wordpress以及在子目錄中運行各種其他應用程序。據我所知,Wordpress permalinks/rewrites工作正常。
問題:當直接瀏覽它們時,所有php文件都能正常工作。但是,當訪問/ apply /時,文件將在瀏覽器中以純文本形式下載和/或顯示。如果我直接瀏覽到/forums/apply.php,它可以正常工作。這個網站
nginx的配置:
server_name site;
root /var/www/site;
index index.php index.html index.htm;
location /apply {
rewrite ^/apply/ /forums/apply.php break;
}
location/{
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
break;
}
}
location ~ \.php {
# for security reasons the next line is highly encouraged
try_files $uri /index.php =404;
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_NAME $fastcgi_script_name;
# if the next line in yours still contains $document_root
# consider switching to $request_filename provides
# better support for directives such as alias
fastcgi_param SCRIPT_FILENAME $request_filename;
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;
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;
# If using a unix socket...
# fastcgi_pass unix:/tmp/php5-fpm.sock;
# If using a TCP connection...
fastcgi_pass 127.0.0.1:9000;
}
的任何和所有的建議都非常讚賞。
我有同樣的問題,並改變指令'last'沒有解決它變化。 –
您的重寫指令是在一個位置塊內還是在一個服務器塊內? 'break'和'last'在服務器模塊中意味着相同的東西。它們只有在位置塊內纔有所不同。 –