Mam to w moim pliku .htaccess:
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301,L]
ale za każdym razem, gdy uzyskuję dostęp do pliku w moim katalogu głównym, jak http://example.com/robots.txt
przekieruje do http://www.example.comrobots.txt/
.
Jak mogę to poprawić, aby poprawnie przekierowywało http://www.example.com/robots.txt
?
blog.example.com
staje sięwww.blog.example.com
Oto prawidłowe rozwiązanie, które obsługuje https i http:
źródło
www
tak jak robią to inne ogólne rozwiązania.yoursite.co.uk
Dla HTTP
źródło
^(.*)$
zamiast(.*)
?Poniższy przykład działa zarówno na ssl, jak i non-ssl i jest znacznie szybszy, ponieważ używasz tylko jednej reguły do zarządzania http i https
[Przetestowany]
To przekieruje
http
do
https
do
źródło
Spróbuj tego, użyłem go na wielu stronach internetowych, działa idealnie
źródło
Przetestowałem wszystkie powyższe rozwiązania, ale nie działało dla mnie, próbowałem usunąć http: // i nie przekierowuję również usunąłem dobrze www przekierowanie, więc się mylę, szczególnie prowadzę wszystkie moje strony pod https : //
Połączyłem więc niektóre kody razem i opracowałem idealne rozwiązanie dla http: // i https: // oraz www i innych niż www.
Mam nadzieję, że to może komuś pomóc :)
źródło
Dodaj następujący kod w pliku .htaccess.
Samouczek przekierowywania adresów URL można znaleźć tutaj - Przekieruj non-www na www i HTTP na HTTPS za pomocą pliku .htaccess
źródło
Ta konfiguracja działała dla mnie w bitnami wordpress ze skonfigurowanym SSL:
Dodano poniżej „RewriteEngine On” w pliku /opt/bitnami/apps/wordpress/conf/httpd-app.conf
źródło
To przekieruje twoją domenę, która nie została uruchomiona przez WWW. To nie przekieruje twojej całej subdomeny.
To jest użyteczne.
źródło
Uważam, że najlepsza odpowiedź z powodzeniem przekierowuje stronę inną niż www na www (np. Mysite.com -> www.mysite.com ), ale nie uwzględnia poddomen wieloznacznych, co powoduje:
Oto rozwiązanie z / bez HTTPS
HTTP
HTTP / HTTPS
* Uwaga: Nie testowałem https, ponieważ obecnie nie mam certyfikatu do przetestowania, ale jeśli ktoś może zweryfikować lub zoptymalizować to, co mam, byłoby to niesamowite.
źródło
Jeśli to możliwe, dodaj to do głównego pliku konfiguracyjnego Apache. Jest to rozwiązanie lżejsze, wymagające mniej przetwarzania.
Tak więc osobne
VirtualHost
dla „example.com” przechwytuje te żądania, a następnie trwale przekierowuje je do głównejVirtualHost
. Nie ma zatem analizy składni REGEX przy każdym żądaniu, a przeglądarki klienta buforują przekierowanie, więc nigdy (lub rzadko) nie będą ponownie żądały „niewłaściwego” adresu URL, co oszczędza obciążenie serwera.Uwaga, końcowe ukośnik w
Redirect permanent / http://www.example.com/
. Bez tego przekierowanie zexample.com/asdf
przekierowałoby nahttp://www.example.comasdf
zamiasthttp://www.example.com/asdf
.źródło
Dwa ostrzeżenia
Unikaj 301 i preferuj nowoczesne kody stanu odpowiedzi 303 lub 307.
Unikaj 301
Zastanów się, czy naprawdę potrzebujesz wskazanego stałego przekierowania,
[R=301]
ponieważ jeśli zdecydujesz się go zmienić później, poprzedni odwiedzający stronę będą nadal widzieć stronę pierwotnego przekierowania.Informacje o stałym przekierowaniu są często przechowywane w pamięci podręcznej przeglądarki i ogólnie trudno je wyeliminować (przeładowanie strony nie rozwiązuje problemu). Odwiedzający Twoją stronę utkną w poprzednim przekierowaniu „na zawsze”.
Unikaj też 302
Nowa wersja protokołu HTTP (v1.1) dodała dwa nowe kody statusu odpowiedzi, których można użyć zamiast 302.
303
Przekierowanie adresu URL, ale wymaga zmiany typu żądania na GET.307
Przekierowanie adresu URL, ale wymaga zachowania pierwotnie wysłanego typu żądania.Nadal możesz używać kodu
302
(niestałe przekierowanie), chociaż uważa się go za niejednoznaczny. W każdym razie większość przeglądarek implementuje302
w taki sam sposób, jak303
instruuje nowy kod.źródło
http://example.com/testing
dohttp://www.example.com/testing
. Czy może to być złe podejście na dłuższą metę? Dzięki,Napisz w .htaccess :)
źródło