这可能是一个SO问题,但它听起来很有用…
每当我build立一个SSL利用站点(不是证书和服务器本身,只是上传文件),我总是最终得到一个在HTTP位的站点的副本,另一个在HTTPS部分的副本,标题向前和向后发送用户。 这也导致了两个副本,这是荒谬的维护。 这让我觉得我做错了,所以这个职位。
我知道SSL“阻止坏人”(或者至less减慢了一些),我知道SSL和非SSL的主机上有不同的部分,但是有人可以给我看一些绳子吗? 或者在网上推荐一些文章?
大诺贝眼泪…
非常感谢你
编辑 :吉梅尔说细节会很好…
嗯,共享主机上的LAMP,共享SSL证书,目前与Zencart作战,但更广泛的意见,将不胜感激,我没有命令行访问,只是FTP和什么不(只是有点可怕).. 。 这是你的意思吗?
假设你使用的是apache vhosting,就像将DocumentRoot设置为同一个位置一样简单。 要使用符号链接(如Dan C的答案 )确保你有
Options +FollowSymLinks
在你的httpdocs / .htaccess文件或者你的httpd.conf主文件中设置好。(htaccess文件在每个页面加载的目录中查找和处理,所以不需要重新启动apache,但是它们比实现它慢代码在httpd.conf中,因为这个文件只在服务器启动时被处理)。
这里有一个httpd.include来从HTTP的相同位置提供HTTPS数据:
<VirtualHost *:80> ServerName test.com ServerAlias www.test.com UseCanonicalName Off DocumentRoot /var/www/vhosts/test.com/httpdocs CustomLog /var/www/vhosts/test.com/logs/access_log common ErrorLog /var/www/vhosts/test.com/logs/error_log <IfModule mod_ssl.c> SSLEngine off </IfModule> Include /var/www/vhosts/test.com/conf/vhost.conf </VirtualHost> <VirtualHost *:443> ServerName test.com ServerAlias www.test.com UseCanonicalName Off DocumentRoot /var/www/vhosts/test.com/httpdocs CustomLog /var/www/vhosts/test.com/logs/access_log common ErrorLog /var/www/vhosts/test.com/logs/error_log <IfModule mod_ssl.c> SSLEngine on SSLVerifyClient none # example ssl certs SSLCertificateFile /usr/local/apache/certs/my.ca.pem SSLCertificateKeyFile /usr/local/apache/certs/my.server.key.pem </IfModule> Include /var/www/vhosts/test.com/conf/vhost_ssl.conf </VirtualHost>
O'Reilly的分步实践链接:在Apache和Apache的SSL页面 configurationSSL (详细!)
编辑:
你应该可以通过FTP访问你的conf / httpd.include文件(它可能位于不同的目录下,但它将位于/var/www/vhosts/test.com/的虚拟主机的子目录或类似的地方 – 你可以find主httpd.conf中的vhost目录)。
您还应该能够访问.htaccess文件 – 它们是Linux隐藏文件,因此您可能需要检查您的FTP客户端的文档。 或者,尝试在您的虚拟主机的httpdocs /目录中创build一个.htaccess文件 – 如果您的文件不可能已经存在。
最后喘口气:联系您的托pipe服务提供商!
我倾向于存储文件如下:
html (HTTP resources) html_ssl (HTTPS resources)
如果每个内容不一定是相同的,那么通常我会将其中一个符号链接到另一个。
ln -s html_ssl html
那么你只需要更新html_ssl的文件。
或者,您可以将两个DocumentRoot指令指向同一位置。 但是这个稍微不直观。
HTTP和HTTPS有单独的设置,但是它们是在同一个目录下服务的。 如果请求通过http到达,则响应通过http服务,而反向https。 要阻止通过http提供文档,必须使用单独的DocumentRoot设置虚拟主机并将其放在那里。