我有一台没有域名的服务器,但我想在那里运行一些网站。我想使用端口而不是域名来实现。
我为此端口设置了一个站点,并将应用程序目录设置为根目录,但现在当我尝试访问时http://127.0.0.1:81
,服务器会将我转发到http://127.0.0.1:81/magento
并破坏我的应用程序 URL。nginx 为什么会这样做?
我对这个网站的配置是:
server {
listen 81;
root /usr/share/nginx/www/magento;
location / {
index index.html index.php;
try_files $uri $uri/ @handler;
expires 30d;
}
location ^~ /app/ { deny all; }
location ^~ /includes/ { deny all; }
location ^~ /lib/ { deny all; }
location ^~ /media/downloadable/ { deny all; }
location ^~ /pkginfo/ { deny all; }
location ^~ /report/config.xml { deny all; }
location ^~ /var/ { deny all; }
location /var/export/ {
auth_basic "Restricted";
auth_basic_user_file htpasswd;
autoindex on;
}
location /. {
return 404;
}
location @handler {
rewrite / /index.php;
}
location ~ .php/ {
rewrite ^(.*.php)/ $1 last;
}
location ~ .php$ {
if (!-e $request_filename) { rewrite / /index.php last; }
expires off;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param MAGE_RUN_CODE default;
fastcgi_param MAGE_RUN_TYPE store;
include fastcgi_params;
}
}
答案1
正如 Felix 在上面的评论中提到的,有些应用程序会为您重写 URL。检查这一点的一种方法是执行
wget http://127.0.0.1:81
看看你是否获得了 301/302 重定向到
http://127.0.0.1:81/magento
该配置文件中似乎没有任何内容表明 nginx 是问题所在,因此我会检查应用程序本身。