Назад | Перейти на главную страницу

Просмотр содержимого файла без расширения в URL

Используя 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]

Протестировал его на моем сервере, похоже, имеет значение.