添加letsencrypt异常htaccess

时间:2018-10-22 09:26:13

标签: .htaccess

我当前的htaccess看起来像这样:

DataTrigger

加载的含义网页默认为/ order内容。 现在,我想为.well_known / acme-challenge / letsencrypt_11 ....等添加例外。

无法在以下行中使用它:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ order/$1 [L]
</IfModule>

我尝试添加:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ order/$1 [L]
</IfModule>

也是。我什至都在寻找有关的所有帖子,但找不到适合我需要的答案。

1 个答案:

答案 0 :(得分:0)

RewriteRule ^/?.well_known/.+$ - [L]

您所需要的就是这样。它必须在您现有的指令之前。这确实假设您的.htaccess文件位于文档根目录中,并且您要为其创建例外的URL是example.com/.well-known/...

例如:

RewriteEngine On

# Exception
# If the URL starts "/.well-known/" then stop here.
RewriteRule ^\.well_known/. - [L]

RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ order/$1 [L]

请注意,文字点应在正则表达式中反斜杠转义。


旁边:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !\.well-known/acme-challenge
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ order/$1 [L]
</IfModule>

这仅对一个规则(删除www子域的另一条规则)产生一个例外。对于任何不具有www子域的请求,通过您的其他指令照常进行处理。

(使用否定匹配)此方法之后,您需要在每一个 RewriteRule指令之前添加异常。