1
0
mirror of https://github.com/certbot/certbot.git synced 2026-01-23 07:20:55 +03:00

add check for apache 2.3.9, warn of possible conflicting rewrite rules

This commit is contained in:
sagi
2015-12-02 01:37:07 +00:00
parent 1a9e6b1a8a
commit a7ebeddb78
2 changed files with 15 additions and 5 deletions

View File

@@ -884,8 +884,19 @@ class ApacheConfigurator(augeas_configurator.AugeasConfigurator):
# Note: These are not immediately searchable in sites-enabled
# even with save() and load()
self.parser.add_dir(general_vh.path, "RewriteEngine", "on")
self.parser.add_dir(general_vh.path, "RewriteRule",
if self.get_version >= (2.3.9):
self.parser.add_dir(general_vh.path, "RewriteRule",
constants.REWRITE_HTTPS_ARGS_WITH_END)
else:
self.parser.add_dir(general_vh.path, "RewriteRule",
constants.REWRITE_HTTPS_ARGS)
if _is_rewrite_exists(vhost):
logger.warn("Preexisting rewrite rules were detected. "
"Please verify that the newly installed "
"redirection rewrite rule doesn't break anything.")
self.save_notes += ("Redirecting host in %s to ssl vhost in %s\n" %
(general_vh.filep, ssl_vhost.filep))
self.save()
@@ -915,9 +926,8 @@ class ApacheConfigurator(augeas_configurator.AugeasConfigurator):
raise errors.PluginEnhancementAlreadyPresent(
"Let's Encrypt has already enabled redirection")
def _is_rewrite_exists(self, host):
"""Checks if there exists a rewriterule directive
def _is_rewrite_exists(self, vhost):
"""Checks if there exists a rewriterule directive in vhost
:param vhost: vhost to check
:type vhost: :class:`~letsencrypt_apache.obj.VirtualHost`

View File

@@ -29,7 +29,7 @@ REWRITE_HTTPS_ARGS = [
"""Apache version<2.3.9 rewrite rule arguments used for redirections to https vhost"""
REWRITE_HTTPS_ARGS_WITH_END = [
"^", "https://%{SERVER_NAME}%{REQUEST_URI}", "[L,QSA,R=permanent]"]
"^", "https://%{SERVER_NAME}%{REQUEST_URI}", "[END,QSA,R=permanent]"]
"""Apache version >= 2.3.9 rewrite rule arguments used for redirections to
https vhost"""