我当前的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>
也是。我什至都在寻找有关的所有帖子,但找不到适合我需要的答案。
答案 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
指令之前添加异常。