2012-04-28 23 views
0

这里是我重写代码:国防部重写不会对SSL工作

## File Security 
<FilesMatch "\.(htaccess)$"> 
Order Allow,Deny 
Deny from all 
</FilesMatch> 

#### Apache directory listing rules #### 
DirectoryIndex index.php index.htm index.html 
IndexIgnore * 

#### Rewrite rules for SEO functionality #### 

<IfModule mod_rewrite.c> 
RewriteEngine On 

#RewriteCond %{SERVER_PORT} 80 
#RewriteRule ^(.*)$ https://www.genyx.co.uk/$1 [R,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^(.*)\.html?$ index.php?seo_path=$1 [L,QSA] 

</IfModule> 

不过,这并不SSL网页上的工作,例如:

http://www.genyx.co.uk/terms-and-conditions.html

https://www.genyx.co.uk/terms-and-conditions.html

有人可以帮我做到这一点吗?

回答

3

编辑:

http://www.genyx.co.uk/ - >显示一些内容

https://www.genyx.co.uk/ - >显示默认的Apache网站 “它的工作!”

所以SSL服务器有一个不同的DocumentRoot。如果你改变它,它应该按预期工作。

顺便说一下,请检查您的SSL证书。我会假设你必须添加中间证书,否则你的一些访问者会收到警告,说明该网站没有被可信实例签名。

编辑:如果您的SSL服务器一切正常或证书链不完整,您可以check by yourself

编辑2:

您的证书提供商有一个很好的说明关于intermediate certificates。而here是下载它的地方。请参阅下文,了解如何根据已安装的证书文件进行安装。

# Apache configuration for specific virtual host ... 
# start SSL/TLS 
SSLEngine on 
# set signed certificate file 
SSLCertificateFile /etc/apache2/ssl/domain_certificate.crt 
# set private key file 
SSLCertificateKeyFile /etc/apache2/ssl/domain_certifikate.key 
# set intermediate certificate/to complete the chain to the root certificate 
SSLCertificateChainFile /etc/apache2/ssl/chain_certificate.crt 
+0

嗨,我看到你终于用你的mod_rewrite解决了这个问题。不幸的是,您忽略了我关于SSL证书链中缺失链接的提示。无论如何,我已经在上面的答案中添加了关于该问题的良好说明以及如何解决的链接。如果您仍然不相信稍等一些客户会收到有关不可信证书的警告。这取决于客户端浏览器和版本。 – 2012-04-30 17:34:30

+0

你好,对不起,我雇了一个人来解决这个问题,因为这真的很紧急。我现在正在研究SLL错误。 什么是证书链? – Adam 2012-05-05 13:55:03

+0

我已经链接了关于此的一个很好的描述(请参阅编辑2)。简而言之,您的认证提供商尚未使用安装在所有浏览器中的根证书来签署您的证书。所以你必须添加一个中间件来让你的证书在所有的浏览器上运行。详情请参见编辑2部分。 – 2012-05-06 16:14:53

1

我会检查这些规则的放置位置。我怀疑你可能会将它们放在虚拟主机部分或其他您的SSL vHost不匹配的地方。

+0

谢谢,我会找人看看! – Adam 2012-04-28 18:46:21