当斜杠存在时,NGINX try_files重写会导致css样式消失

时间:2014-06-03 21:42:47

标签: php css nginx

所以我尝试使用下面的基本配置创建一个使用NGINX / PHP-FPM来处理友好URL的机制。

当我使用不存在的uri运行地址时: http://example.com/blah/whatever

默认页面中的所有样式都消失了。我以为我已经了解了进展情况并进行了详尽的搜索,但是在堆栈或日志中没有任何内容,或者Firebug或Chrome中的内容都证实了我的直觉。

以下是我的nginx配置:

服务器

listen 192.168.1.80:80 default_server;
listen 192.168.1.80:443 default_server ssl;

root /home/main/jb/www/;        
client_max_body_size 30M;

# access_log  logs/host.access.log  main;

location / {
    # try_files $uri $uri/ /index.php;
    try_files $uri $uri/ /index.php?$uri&$args;
    index index.php;
    include mime.types;
}

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

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
     root   /home/main/jb/www/;
     try_files $uri =404;
     fastcgi_split_path_info ^(.+\.php)(.*)$;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

     include fastcgi_params;

     fastcgi_ignore_client_abort on;
     fastcgi_param  SERVER_NAME $http_host;             
     fastcgi_connect_timeout 60;
     fastcgi_send_timeout 180;
     fastcgi_read_timeout 180;
     fastcgi_buffer_size 128k;
     fastcgi_buffers 4 256k;
     fastcgi_busy_buffers_size 256k;
     fastcgi_temp_file_write_size 256k;
     fastcgi_intercept_errors on;
}
location ~ /\.ht {
        deny  all;
}

1 个答案:

答案 0 :(得分:0)

免责声明:这是从问题中提取的。

我似乎已经通过在我使用相对路径之前向所有相应的脚本和链接选项卡添加完整URL来解决问题。不确定我是否完全理解解决方案的动态,但我希望这会有所帮助。