SSL .htaccess - простой Q

Nov 13 2020

Я действительно ненавижу этот файл ... Я просто потратил 6,5 часов, пытаясь понять это, и с моей дислексией СДВГ это просто невозможно !! У меня есть домен, который я купил для SSL (в настоящее время мне нужно подождать, пока ssl для WWW не сработает, но пока домен без WWW работает, например:

https://tomas.com

.Htaccess, который у меня есть в корне, в настоящее время:

RewriteEngine On
RewriteCond %{HTTP_HOST} tomas\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://tomas.com/$1 [R,L]

И приведенный выше код действительно активирует SSL, что хорошо. Дело в том, что у меня есть несколько файлов в корневом домене, но один из них называется:

hello.php (находится по адресу: "tomas.com/hello.php")

Если я пойду: http://tomas.com/helloЯ хочу, чтобы он отображал этот файл (и в адресной строке он должен был сказать: «http://tomas.com/hello»). До SSL у меня был этот код ниже, и он работал (но уже не):

RewriteRule ^([^/]*)/?(.*)$ $1.php

Есть идеи, как должен выглядеть весь .htaccess? : /

Я также пытаюсь заставить его НЕ использовать www (так что, если они это сделают, он должен быть перенаправлен на URL, отличный от WWW) Большое спасибо заранее !!!!!!!!!!!!

Ответы

1 MrWhite Nov 14 2020 at 03:02

До SSL у меня был этот код ниже, и он работал (но уже не):

RewriteRule ^([^/]*)/?(.*)$ $1.php

Не уверен, как это «работало» раньше, оно не является полным само по себе и делает больше, чем просто добавляет .phpрасширение. Вам нужно что-то, чтобы предотвратить цикл перезаписи, поскольку hello.phpтакже соответствует шаблону ^([^/]*)/?(.*)$.

Вместо этого попробуйте следующее после перенаправления HTTP на HTTPS.

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]

Это сначала проверяет, существует ли файл с .phpрасширением файла, прежде чем внутренне перезаписывать его.

В качестве альтернативы вы можете просто включить MultiView, если вы не выполняете переписывание других URL. Например, вверху вашего файла:

Options +MultiViews

Это использует mod_negotiation, чтобы включить URL без расширений для всего !