nginx-cakephp虚拟主机重定向
我是nginx新手,无法让我的站点正常工作(AWS上的Cakephp站点)。我收到消息“页面没有正确重定向”,以及一些东西如何将域附加到自身(重定向循环) 例如,当我进入我的站点nginx-cakephp虚拟主机重定向,php,cakephp,nginx,Php,Cakephp,Nginx,我是nginx新手,无法让我的站点正常工作(AWS上的Cakephp站点)。我收到消息“页面没有正确重定向”,以及一些东西如何将域附加到自身(重定向循环) 例如,当我进入我的站点sub1.mysite.com时,浏览器会添加sub1.mysite.com/sub1.mysite.com/sub1.mysite.com/sub1.mysite.com等等 这是我的网站可用配置 server { listen 80; server_name sub1.mysite.com; rew
sub1.mysite.com
时,浏览器会添加sub1.mysite.com/sub1.mysite.com/sub1.mysite.com/sub1.mysite.com
等等
这是我的网站可用配置
server {
listen 80;
server_name sub1.mysite.com;
rewrite ^(.*) http://sub1.mysite.com$1 permanent;
}
server {
listen 80; ## listen for ipv4; this line is default and implied
server_name name sub1.mysite.com;
root /var/www/sub1.mysite.com/public_html/sub-root;
index index.php index.html index.htm;
# error_page 404 errors/404.html;
access_log /var/log/nginx/sub1.mysite.com.access.log;
# Make site accessible from http://localhost/
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ .php$ {
root /var/www/sub1.mysite.com/public_html/sub-root;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
知道我做错了什么吗?您的问题在于第一个nginx服务器指令:
server {
listen 80;
server_name sub1.mysite.com;
rewrite ^(.*) http://sub1.mysite.com$1 permanent;
}
您的指令正在侦听端口80(http)并响应sub1.mysite.com
,然后它匹配所有内容^(.*)
,并重定向到http://sub1.mysite.com$1永久性
其中,$1
是您匹配的结果,因此基本上,它附加了sub1.mysite.com
。我看不出你为什么需要这个服务器指令?它侦听与主服务器指令相同的端口,并响应相同的server\u名称
,只需删除它即可。结果应该是(注意:我修复了一些设置,查看注释了解更多详细信息):
如果您对第一个服务器指令有其他想法,请告诉我。您的问题在于第一个nginx服务器指令:
server {
listen 80;
server_name sub1.mysite.com;
rewrite ^(.*) http://sub1.mysite.com$1 permanent;
}
您的指令正在侦听端口80(http)并响应sub1.mysite.com
,然后它匹配所有内容^(.*)
,并重定向到http://sub1.mysite.com$1永久性
其中,$1
是您匹配的结果,因此基本上,它附加了sub1.mysite.com
。我看不出你为什么需要这个服务器指令?它侦听与主服务器指令相同的端口,并响应相同的server\u名称
,只需删除它即可。结果应该是(注意:我修复了一些设置,查看注释了解更多详细信息):
如果您对第一个服务器指令有其他想法,请告诉我。两天前您在哪里……只是开个玩笑:-)。说真的,非常感谢你。它起作用了!!尽管如此,我现在遇到的唯一问题是
index.php
;例如:如果我点击“dashboard”,它是sub1.mysite.com\dashboard
,它就可以了。如果我直接去索引,它可以正常工作sub1.mysite.com/index.php
。但是如果访问站点&不指定索引文件(sub1.mysite.com),我会得到错误“缺少控制器错误:sub1.mysite.com找不到控制器”。看起来它正在将域名传递给cake的控制器。有什么想法吗?@user20719检查我编辑的答案。您得到的错误是CakePHP错误?我从未使用过CakePHP。无论如何,如果这是一个CakePHP错误,那么这意味着您的nginx配置可能是正常的,但您的路由声明存在问题。看看你的路线2天前你在哪里…开玩笑:-)。说真的,非常感谢你。它起作用了!!尽管如此,我现在遇到的唯一问题是index.php
;例如:如果我点击“dashboard”,它是sub1.mysite.com\dashboard
,它就可以了。如果我直接去索引,它可以正常工作sub1.mysite.com/index.php
。但是如果访问站点&不指定索引文件(sub1.mysite.com),我会得到错误“缺少控制器错误:sub1.mysite.com找不到控制器”。看起来它正在将域名传递给cake的控制器。有什么想法吗?@user20719检查我编辑的答案。您得到的错误是CakePHP错误?我从未使用过CakePHP。无论如何,如果这是一个CakePHP错误,那么这意味着您的nginx配置可能是正常的,但您的路由声明存在问题。看看你的路由器