只有登陆页面加载 HTTPS 我得到的所有其他页面请求的 URL 在此服务器上找不到
Only the landing page load HTTPS all other pages I get The requested URL was not found on this server
我的网站在 http 上运行良好,但使用具有有效证书的 https 只会成功加载登录页面。尝试点击任何其他页面会导致 URL 未找到。
我在同一台服务器上有一个站点的克隆,站点名称不同 (test.mysite.com),使用 https 上的自签名证书。不确定为什么一个有效而另一个无效。
Apache 配置文件相同(站点名称除外)。
证书文件有问题吗?我设置了自签名的,但其他人设置了付费的。
我看哪里?
/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
php_value max_input_vars 10000
php_value suhosin.get.max_vars 10000
php_value suhosin.post.max_vars 10000
php_value suhosin.request.max_vars 10000
~
site.conf
VirtualHost *:80>
ServerAdmin webmaster@mysite.ca
ServerName registration.mysite.ca
# Indexes + Directory Root.
DirectoryIndex index.php index.html
DocumentRoot /var/www/html/registration.mysite.ca/public
# SSL certs
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/registration.mysite.ca.crt
SSLCertificateKeyFile /etc/apache2/ssl/registration.mysite.ca.key
SSLCACertificateFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
<IfModule mod_security2.c>
SecRequestBodyNoFilesLimit 5242880
</IfModule>
<Directory /var/www/html/registration.mysite.ca/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
当您加载 css/js/images 时,您使用的是 src="http://registration.mysite.ca" 吗?如果是这样,将其更改为 src="//registration.mysite.ca" 并且它应该可以工作。
SSLEngine on
in <VirtualHost *:80>
几乎没用,因为端口 80 永远不会提供 SSL 内容,所以您的证书肯定不会在这里使用。
你必须在某处有另一个 <VirtualHost *:443>
,可能有不同的 DocumentRoot
。
因为它被标记为 Laravel,我建议使用 Laravel Forge 来处理这样的一切。对我帮助很大。至于手头的问题,请确保虚拟主机设置为443,然后强制将所有流量重定向到https。
只需将其添加到 apache 站点配置中并更改域。 (注意 HTTPS)
<VirtualHost *:80>
ServerName example.com
Redirect / https://example.com/
</VirtualHost>
我的网站在 http 上运行良好,但使用具有有效证书的 https 只会成功加载登录页面。尝试点击任何其他页面会导致 URL 未找到。
我在同一台服务器上有一个站点的克隆,站点名称不同 (test.mysite.com),使用 https 上的自签名证书。不确定为什么一个有效而另一个无效。
Apache 配置文件相同(站点名称除外)。
证书文件有问题吗?我设置了自签名的,但其他人设置了付费的。
我看哪里?
/public/.htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
php_value max_input_vars 10000
php_value suhosin.get.max_vars 10000
php_value suhosin.post.max_vars 10000
php_value suhosin.request.max_vars 10000
~
site.conf
VirtualHost *:80>
ServerAdmin webmaster@mysite.ca
ServerName registration.mysite.ca
# Indexes + Directory Root.
DirectoryIndex index.php index.html
DocumentRoot /var/www/html/registration.mysite.ca/public
# SSL certs
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/registration.mysite.ca.crt
SSLCertificateKeyFile /etc/apache2/ssl/registration.mysite.ca.key
SSLCACertificateFile /etc/apache2/ssl/gd_bundle-g2-g1.crt
<IfModule mod_security2.c>
SecRequestBodyNoFilesLimit 5242880
</IfModule>
<Directory /var/www/html/registration.mysite.ca/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
当您加载 css/js/images 时,您使用的是 src="http://registration.mysite.ca" 吗?如果是这样,将其更改为 src="//registration.mysite.ca" 并且它应该可以工作。
SSLEngine on
in <VirtualHost *:80>
几乎没用,因为端口 80 永远不会提供 SSL 内容,所以您的证书肯定不会在这里使用。
你必须在某处有另一个 <VirtualHost *:443>
,可能有不同的 DocumentRoot
。
因为它被标记为 Laravel,我建议使用 Laravel Forge 来处理这样的一切。对我帮助很大。至于手头的问题,请确保虚拟主机设置为443,然后强制将所有流量重定向到https。
只需将其添加到 apache 站点配置中并更改域。 (注意 HTTPS)
<VirtualHost *:80>
ServerName example.com
Redirect / https://example.com/
</VirtualHost>