Php Mod rewrite不';不能在SSL上工作

Php Mod rewrite不';不能在SSL上工作,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,这是我的重写代码: ## 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 funct

这是我的重写代码:

## 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>
##文件安全
命令允许,拒绝
全盘否定
####Apache目录列表规则####
DirectoryIndex.php index.htm index.html
IndexIgnore*
####重写搜索引擎优化功能的规则####
重新启动发动机
#重写cond%{SERVER_PORT}80
#重写规则^(.*)$https://www.genyx.co.uk/$1[R,L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}=/图标文件
重写规则^(.*)\.html?$index.php?seo\u路径=$1[L,QSA]
但它在SSL页面上不起作用,例如:


有人能帮我把它做好吗?

我想看看这些规则放在哪里。我怀疑它们可能位于虚拟主机部分或SSL vHost不匹配的其他位置。

我将查看这些规则的放置位置。我怀疑您可能在虚拟主机部分或SSL vHost不匹配的其他位置安装了它们。

编辑:

->显示一些内容

->显示默认Apache站点“It works!”

因此,SSL服务器具有不同的DocumentRoot。如果您更改此选项,它将按预期工作

顺便说一下,请检查您的SSL证书。我假设您必须添加中间证书,否则您的一些访问者将收到警告,指出站点未由受信任的实例签名

编辑:如果SSL服务器一切正常,或者证书链不完整,则可以编辑

编辑2:

您的证书提供程序对这方面有很好的描述。是下载它的地方。请参阅下文,了解如何针对已安装的证书文件安装此文件

# 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
编辑:

->显示一些内容

->显示默认Apache站点“It works!”

因此,SSL服务器具有不同的DocumentRoot。如果您更改此选项,它将按预期工作

顺便说一下,请检查您的SSL证书。我假设您必须添加中间证书,否则您的一些访问者将收到警告,指出站点未由受信任的实例签名

编辑:如果SSL服务器一切正常,或者证书链不完整,则可以编辑

编辑2:

您的证书提供程序对这方面有很好的描述。是下载它的地方。请参阅下文,了解如何针对已安装的证书文件安装此文件

# 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

谢谢,我会找人调查的!谢谢,我会找人调查的!嗨,我看到你终于用你的修改解决了这个问题。不幸的是,您忽略了我关于SSL证书链中缺少链接的提示。无论如何,我已经在上面的答案中添加了一些链接,可以很好地描述这个问题以及如何解决它。如果您仍然不相信稍等片刻,您的一些客户端将收到关于不受信任证书的警告。这取决于客户端的浏览器和版本。您好,很抱歉,我雇了人来解决这个问题,因为事情非常紧急。我现在正在处理SLL错误。什么是证书链?我已经链接了一个很好的描述(参见编辑2)。简而言之,您的证书提供商没有使用安装在所有浏览器中的根证书来签署您的证书。因此,您必须添加一个中间层,以使您的证书在所有浏览器上工作。详细信息也附在第2节编辑。嗨,我看到你终于解决了你的mod_重写的问题。不幸的是,您忽略了我关于SSL证书链中缺少链接的提示。无论如何,我已经在上面的答案中添加了一些链接,可以很好地描述这个问题以及如何解决它。如果您仍然不相信稍等片刻,您的一些客户端将收到关于不受信任证书的警告。这取决于客户端的浏览器和版本。您好,很抱歉,我雇了人来解决这个问题,因为事情非常紧急。我现在正在处理SLL错误。什么是证书链?我已经链接了一个很好的描述(参见编辑2)。简而言之,您的证书提供商没有使用安装在所有浏览器中的根证书来签署您的证书。因此,您必须添加一个中间层,以使您的证书在所有浏览器上工作。有关详细信息,请参见第2节“编辑”。