我有一个自定义应用程序,该应用程序需要通过中央路由器重定向所有请求,并且需要为LetsEncrypt添加一个例外,以将请求发送到直接在文档根目录下创建的临时/.well-known
目录中。
说我的原始.htaccess
文件是:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^.*$ router.php
我将其修改为:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/.well-known.*$
RewriteRule ^.*$ router.php
但是我可以看到请求仍然被强制进入路由器。为什么这种重写条件不起作用?
答案 0 :(得分:1)
您可以使用以下规则:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} !\s/\.well-known/?[?\s] [NC]
RewriteRule ^ router.php [L]
使用其他RewriteCond
来跳过文件和目录,并使用THE_REQUEST
代替REQUEST_URI
。