Nginx + PHP-FPM
沃思配置。主持人:
listen 80;
server_name test.local;
root /home/httpdocs/test.local/www;
index index.php index.html index.htm;
access_log /home/httpdocs/test.local/log/access.log;
error_log /home/httpdocs/test.local/log/error.log;
location / {
try_files $uri $uri/ /index.php?$args;
rewrite ^/(.*)/$ /$1 permanent;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /home/httpdocs/test.local/www/;
fastcgi_param SCRIPT_FILENAME /home/httpdocs/test.local/www/$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /home/httpdocs/test.local/www/$fastcgi_script_name;
include 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_intercept_errors on;
fastcgi_ignore_client_abort off;
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;
}
location ~ /\.(ht|svn|git) {
deny all;
}
当您在浏览器中打开 url: test.local时,它会自动重定向到test.local/(在末尾添加一个斜杠),这就是问题所在!
告诉我怎么解决?
ps:虽然test.local/post/自动重定向到test.local/post(去掉末尾的斜杠),这是正确的。那些。当 url 仅包含主机名时,问题就出现了。
打开时
test.local
,不会发生重定向。您的浏览器实际上向 发送了一个请求,只是在某些情况下http://test.local/
为了您的方便,浏览器不会在地址栏中显示http://
开头和结尾/
(如果路径仅包含)。/
显然,在您的浏览器中,表单域example.local
和example.ru
隐藏单个斜线的规则是不同的。正如@AlexeyTen 所说的那样,必须始终在域之后指定一个路径,至少由一个斜杠组成,没有空路径。