我的 Yii 网站有一个如下所示的虚拟主机
服务器 { 根目录/var/www/代码; 索引 index.php 索引.html; 服务器名称 example.com; 地点 / { 重写 ^/en/keyword$ /en/spesfic_controller/ 最后; .... } }
如果我用最后的或者休息在上面的重写规则中,nginx 会抛出 404 错误,但如果我将其更改为永恒的,它会重定向它并正常工作!!可能出了什么问题?或者我错过了什么?(错误日志中没有任何内容)
编辑
完整的虚拟主机如下:
服务器 { 听80; 根目录/var/www/代码; 索引 index.php 索引.html; 服务器名称 example.com; 地点 / { 重写 ^/[/]*$ /ar/ 永久; proxy_set_header 接受编码“”; proxy_set_header X-真实IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 如果(!-e $请求文件名){ 重写 ^/(.*)$ /index.php?q=$1 最后; } } 重写 ^/en/jobs-in-riyadh$ "/en/jobs/SearchResult/city_id/a:1:%7Bi:0;s:2:%2210%22;%7D" 最后; 错误日志 /var/log/nginx/error.log 警告; 访问日志/var/log/nginx/access.log; 如果 ($http_user_agent ~ libwww-perl) { 返回 403; } 位置 ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|ttf|woff)$ { 访问登录关闭; log_not_found关闭; 最大过期时间;#你可以将其设置为 30d 之类的; add_header 指令公共; add_header Cache-Control "public";#您可以设置多个以逗号分隔的“,must-revalidate,proxy-revalidate”; } 位置 ~ \.php$ { 包括/etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index索引.php; fastcgi_param SCRIPT_FILENAME /var/www/code/$fastcgi_script_name; fastcgi_buffer_size 是4k; fastcgi_缓冲区 256 4k; fastcgi_max_temp_file_size 0; 代理缓冲关闭; 发送超时180秒; 代理读取超时120秒; 代理连接超时120秒; fastcgi_send_timeout 120秒; fastcgi_读取超时120秒; fastcgi_连接超时120秒; } 位置 ~ /\. { 访问登录关闭; log_not_found关闭; 全部否认; } }