使用該方法失敗/q/10...
不光靜態資源302跳轉,而且跳轉到的404.html還無法加載,還有就是url後面的php去不掉,求大神解決! ! !
nginx具體配置如下
80埠
#server {
listen 80;
server_name crazyc.cn www.crazyc.cn;
root /var/www/html/;
#rewrite ^/(.*)$ https://crazyc.cn/index.php permanent;
if ($ssl_protocol = "") {
return 301 https://$server_name$request_uri;
}
if ($host != 'crazyc.cn' ) {
return 301 https://crazyc.cn$request_uri;
}
error_log /logs/error.log;
charset utf-8;
client_body_buffer_size 512k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 4000;
proxy_buffers 32 4k;
client_max_body_size 75m;
# Load configuration files for the default server block.
location / {
index index.html index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php last;
}
}
}
include vhost/*;
vhost/下的443埠
server {
listen 443 ssl;
server_name crazyc.cn www.crazyc.cn;
ssl on;
ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
error_log /logs/error.log;
error_page 404 = https://crazyc.cn/404.html;
charset utf-8;
client_max_body_size 75m;
# Load configuration files for the default server block.
location ~ .*\.php(\/.*)*$ {
root html;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
#include fastcgi.conf;
#fastcgi_pass 127.0.0.1:9000;
}
access_log logs/yourdomain.log combined;
}
曾经蜡笔没有小新2017-05-17 09:57:38
你的80埠裡面配的東西太多了,80裡面只需要配一樣,就是所有請求跳到443.然後具體修改443的設定。
443裡面你只指定了php的訪問,沒有指定靜態資源的路徑。參考配置如下:
server {
listen 80;
server_name crazyc.cn www.crazyc.cn;
rewrite ^ https://$server_name$request_uri permanent;
}
server {
listen 443 ssl;
server_name crazyc.cn www.crazyc.cn;
index index.php;
charset utf-8;
ssl on;
ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 静态资源
location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|apk|ttf|woff|woff2|svg|flv|swf)$ {
add_header Access-Control-Allow-Origin *;
root /example/path/; # 这里配你的静态资源文件根路径
}
# 以下是php配置
location / {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
try_files $uri $uri/ /index.php?$args;
}
如果你的靜態資源與php檔案放在一起,靜態資源裡面的root可以放到外邊來,像這樣:
server {
listen 80;
server_name crazyc.cn www.crazyc.cn;
rewrite ^ https://$server_name$request_uri permanent;
}
server {
listen 443 ssl;
server_name crazyc.cn www.crazyc.cn;
root /example/path/; # 这里配你的静态资源文件根路径
index index.php;
charset utf-8;
ssl on;
ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 静态资源
location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|apk|ttf|woff|woff2|svg|flv|swf)$ {
add_header Access-Control-Allow-Origin *;
}
# 以下是php配置
location / {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
try_files $uri $uri/ /index.php?$args;
}
}