【问题标题】:Apache RewriteRule works under http not under httpsApache RewriteRule 在 http 下而不是在 https 下工作
【发布时间】:2014-09-02 03:22:20
【问题描述】:

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

在 https 下导航到该文件时收到 500:Internal Server Error 但我在使用 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 日志也没有写入。错误日志中没有任何内容可以解释为什么这不起作用。

【问题讨论】:

  • 除非你想支持 IE
  • 谢谢!这可能会有所帮助。
  • 由于某种原因,我的错误日志没有显示任何与此相关的错误......而且我的访问日志和 ssl_access 日志由于某种原因是空的。我希望我也能看到这些日志
  • 如果您使用 301 重定向而不是 302 重定向,浏览器会将答案保存在内部缓存中,因此不会有新请求。在测试时强制执行临时重定向。

标签: php apache ssl centos redhat


【解决方案1】:

通过在 SSl.conf 下将重写规则更改为以下来解决此问题

重写规则 ^/site/testfile.js(\?.*)?$ /site/test.php$1 [L]

【讨论】:

    猜你喜欢
    • 2014-03-17
    • 1970-01-01
    • 2012-03-20
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多