Используя Apache и Centos 7, я поместил два конкретных файла в /var/www/html
как показано ниже
[root@sn acme-challenge]# pwd
/var/www/html/.well-known/acme-challenge
[root@sn acme-challenge]# ls -l
total 8
-rw-r--r--. 1 root root 88 Dec 21 12:19 8KyeoB4HPzOPR6Et9uBPWoldME6LGIBV3ps
-rw-r--r--. 1 root root 2 Dec 21 12:20 test.txt
[root@sn acme-challenge]# cat 8KyeoB4HPzOPR6Et9uBPWoldME6LGIBV3ps
8KyeoB4HPzOPR6Et9uBPWoldME6LGIBV3ps.QTHp9d8EEr94A5QohL1LAlh51l9Wsy4ET1jo
[root@sn acme-challenge]# cat test.txt
uu
Когда я вхожу https://somewhere.com/.well-known/acme-challenge/test.txt
, отображается содержимое файла, uu
.
Однако когда я вхожу https://somewhere.com/.well-known/acme-challenge/8KyeoB4HPzOPR6Et9uBPWoldME6LGIBV3ps
, он перенаправляется на основной сайт, который https://somewhere.com
.
Содержание /var/www/html/.htaccess
является
Options +FollowSymLinks
RewriteEngine On
AddEncoding gzip .gz
AddEncoding gzip .gzip
<FilesMatch "\.(js.gz|js.gzip)$">
ForceType text/javascript
</FilesMatch>
<FilesMatch "\.(css.gz|css.gzip)$">
ForceType text/css
</FilesMatch>
<Files CHANGELOG.txt>
deny from all
</Files>
<Files INSTALL.txt>
deny from all
</Files>
<Files UPDATE.txt>
deny from all
</Files>
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/index\.php
RewriteCond %{REQUEST_URI} !/ow_updates/classes
RewriteCond %{REQUEST_URI} !/ow_cron/run\.php
RewriteCond %{REQUEST_URI} !/ow_cron/run\.php
RewriteCond %{REQUEST_URI} !/e500\.php
RewriteCond %{REQUEST_URI} !/captcha\.php
#RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
RewriteRule (.*) index.php
Как я могу это исправить, чтобы просматривать содержимое 8KyeoB4HPzOPR6Et9uBPWoldME6LGIBV3ps
?
Похоже, это есть в вашем правиле перезаписи:
RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw|/[^.]*)$ [NC]
В / [^. ]* соответствует файлам без расширения. Попробуй это:
RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.xml|\.feed|robots\.txt|\.raw)$ [NC]
Протестировал его на моем сервере, похоже, имеет значение.