我有一个近 2 个月都无法解决的问题。我已设置:
- GoDaddy 帐户中的子域名,我创建了
A
记录并将其指向 IP 地址。
我的 GCE 实例的地址...我认为我的 Nginx 配置没问题。我的问题是,当我访问我的网站 URL 时,它会显示 IP 地址,而不是mysubdomain.example.com
。我不希望显示我的 IP 地址,我希望 URL 中的子域名在浏览器中可见。我怀疑是.htaccess
我的 laravel 应用程序导致 IP 地址始终显示在 URL 中。
在 Go Daddy 帐户中,这是我在 DNS 管理中创建的方式。
type=A,
Host=mysubdomain,
Point to=i.p address,
ttl=1.
下面还有子域名的转发部分,我点击添加按钮,输入我的子域名,转发到http://ip地址,转发类型=永久(301),设置=仅转发
这是我的服务器 GCE 中的 Nginx 配置
server {
listen 80;
listen [::]:80;
root /var/www/pro1/public/;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm;
server_name mysubdomain.example.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ /index.php?$query_string;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
答案1
下面还有子域名的转发部分,我点击添加按钮,输入我的子域名,转发到
http://i.p
地址,转发类型=永久(301),设置=仅转发
这就是问题所在。你不需要外部重定向当您已经配置了A
记录时!这是两件不同的事情。
(尽管有了 A 记录(到外部服务器),您不一定希望看到重定向 - 但这可能归因于 GoDaddy 的实现?)
删除重定向(“转发部分”)。
您需要清除浏览器缓存,因为错误的 301(永久)重定向已经被浏览器硬缓存(对于访问过您网站的任何用户来说都是一样的)。
答案2
事实上,它应该是 Laravel 应用程序级别的重定向。似乎没有 nginx 规则可以做到这一点,而且……你似乎很困惑;nginx 不处理 .htaccess 文件。看看这, 例如。