SSL .htaccess - Simple Q
Naprawdę nienawidzę tego pliku ... Właśnie spędziłem 6,5 godziny próbując to rozgryźć, a przy mojej dysleksji ADHD jest to po prostu niemożliwe! Mam domenę, dla której kupiłem dla SSL (obecnie muszę poczekać na uruchomienie ssl dla WWW, ale na razie domena bez WWW działa, na przykład:
https://tomas.com
Plik .htaccess, który mam w katalogu głównym, to obecnie:
RewriteEngine On
RewriteCond %{HTTP_HOST} tomas\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://tomas.com/$1 [R,L]
 
    A powyższy kod faktycznie aktywuje SSL, co jest dobre. Rzecz w tym, że mam kilka plików w domenie głównej, ale jeden z nich to:
hello.php (znajduje się pod adresem: „tomas.com/hello.php”)
Jeśli pójdę do: http://tomas.com/helloChcę, aby wyświetlał ten plik (a na pasku adresu powinien być napisany: „http://tomas.com/hello”). Przed SSL miałem ten kod poniżej i działał (ale już nie):
RewriteRule ^([^/]*)/?(.*)$ $1.php
 
    Masz pojęcie, jak ma wyglądać cały .htaccess? : /
Jednocześnie staram się ZMUSIĆ, aby NIE używał www (więc jeśli to zrobią, powinien zostać przekierowany na adres URL inny niż WWW) Z góry dziękuję !!!!!!!!!!!!
Odpowiedzi
Przed SSL miałem ten kod poniżej i działał (ale już nie):
RewriteRule ^([^/]*)/?(.*)$ $1.php
Nie jestem pewien, jak to „działało” wcześniej, nie jest kompletne samo w sobie i robi więcej niż po prostu dołączanie .phprozszerzenia. Potrzebujesz czegoś, co zapobiegnie pętli przepisywania, ponieważ hello.phppasuje również do wzorca ^([^/]*)/?(.*)$.
Zamiast tego spróbuj wykonać poniższe czynności po przekierowaniu HTTP na HTTPS.
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule (.*) $1.php [L]
 
     Najpierw sprawdza, czy plik z .phprozszerzeniem pliku istnieje, zanim zostanie do niego wewnętrznie przepisany.
Alternatywnie możesz zamiast tego po prostu włączyć MultiViews, jeśli nie wykonujesz żadnego innego przepisywania adresu URL. Na przykład u góry pliku:
Options +MultiViews
 
     Wykorzystuje to mod_negotiation, aby w zasadzie włączyć bez rozszerzeń adresy URL dla wszystkiego !