.htaccess - открывает файлы без расширения, используя .htaccess в поддомене. - PullRequest
0 голосов
/ 25 февраля 2020

Я скачал веб-сайт, все файлы закодированы в HTML и файлы не имеют расширения.

Мой root домен основан на WordPress.

Я хочу открыть все файлы как HTML с использованием .htaccess - файлы находятся на поддомене.

Я пробовал это, думаю, это только для root домена ... Мне нужна помощь для поддоменов.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

1 Ответ

0 голосов
/ 26 февраля 2020

Ваш вопрос немного расплывчатый, поскольку вы не приводили примеры URL-адресов и структуры файла. Однако, если у файлов HTML нет расширений, вполне вероятно, что заголовок ответа HTTP Content-Type, отправляемый с сервера, либо неверен, либо полностью отсутствует (и зависит от браузера, который "отслеживает содержимое" - что происходит чтобы получить смешанные результаты).

Нам нужно сделать несколько предположений:

  • Все файлы HTML (не имеющие расширений файлов) нигде не содержат точку в путь к файлу.
  • Файлы CSS и JS имеют соответствующие расширения ie. .css и .js, и уже возвращают правильный тип MIME (заголовок Content-Type).

    Если у них тоже нет расширений файлов, их нужно будет указывать в спецификациях c каталогов, чтобы мы могли установить соответствующий тип MIME соответственно. Нам также необходимо создать исключения с нашими правилами, чтобы избежать конфликтов.

Итак, чтобы браузер интерпретировал эти файлы как HTML, нам необходимо убедиться, что мы отправляем правильный MIME-тип (ie. text/html) в заголовке ответа Content-Type. (Я предполагаю, что это не тот случай.)

Например, используя mod_rewrite в файле .htaccess в вашем поддомене (который, как я полагаю, отделен от вашего основного домена):

RewriteEngine On
RewriteRule ^([^.]+)?$ - [T=text/html]

Однако, как отмечалось выше, если ваши ресурсы * stati c (JS, CSS, images и т. Д. c.) Также не имеют расширений файлов, нам нужно добавить условия к вышеуказанному правилу. и создайте дополнительные правила для разных типов файлов / пантомим.


В стороне:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)$ /$1.php [L,QSA]

Эти директивы, которые вы опубликовали в вопрос, похоже, не имеет никакого отношения к вашему вопросу, что только усилило путаницу в комментариях.

...