Apache RewriteRule在http下不在https下工作

时间:2014-07-11 13:20:35

标签: php apache ssl centos redhat

我有一个Apache RewriteRule,它在httpd.conf中的http下运行,但不在ssl.conf中的https下运行

我在https下导航到该文件时收到500:内部服务器错误但我在使用http时看到了重定向。

DocumentRoot是/ var / www / html

我正在尝试将任何请求重定向到/var/www/html/site/testfile.js到/var/www/html/site/test.php。这完全适用于http,如下:

<VirtualHost *:80> RewriteEngine on RewriteRule ^/site/testfile.js(\?.*)?$ /site/test.php$1 [P] </VirtualHost>

在ssl.conf下,它设置如下:

`<VirtualHost _default_:443>
RewriteEngine on
RewriteRule ^/site/testfile.js(\?.*)?$ /site/test.php$1 [P]
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel debug
SSLEngine on
SSLProtocol all -SSLv2  
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/star_domainname_ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/server.key
SSLCertificateChainFile /etc/pki/tls/certs/DigiCertCA.crt
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
    SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
     nokeepalive ssl-unclean-shutdown \
     downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>`

任何帮助将不胜感激。

由于某种原因,登录access.log和ssl_access日志也没有写入...错误日志中没有任何内容可以解释为什么这不起作用。

1 个答案:

答案 0 :(得分:0)

通过在SSl.conf

下将重写规则更改为以下内容来解决此问题

RewriteRule ^ / site / testfile.js(\?。*)?$ / site / test.php $ 1 [L]