Przewodnik dla początkujących do .htaccess dla projektantów i programistów
Wśród wielu różnych narzędzi do dostosowywania serwera WWW, plik konfiguracyjny .htaccess jest ogromnym atutem. Możesz szybko resetować typy dokumentów, analizować silniki, przekierowywać adresy URL, i wiele innych ważnych funkcji. Webmasterzy, którzy nie są bardzo techniczni, mogą nie zrozumieć specyfiki zarządzania własnym plikiem .htaccess. Ale sam temat jest fascynujący i wart pewnego zbadania.
W tym artykule chcę przedstawić niektóre bardziej celowe koncepcje dla webmasterów i twórców stron internetowych. Każdy, kto jest uruchomienie własnej strony internetowej na serwerze Apache na pewno będzie chciał zrozumieć, jak zarządzać ich plikiem .htaccess. To zapewnia tak wiele możliwości dostosowania i to może pracować we wszystkich językach internetowych od PHP do Ruby.
Na dole tego posta dodałem kilka zewnętrznych aplikacji internetowych Pomóż nowicjuszom dynamicznie generować pliki .htaccess.
Po co używać pliku .htaccess?
To świetne pytanie i może powinniśmy zacząć od odpowiedzi “co to jest plik .htaccess”? Jest to bardzo specjalny plik konfiguracyjny używany przez serwer WWW Apache. Plik .htaccess może powiedzieć serwerowi WWW jak przedstawiać różne formy informacji i jak obsługiwać różne nagłówki żądań HTTP.
Naprawdę jest to środek decentralizacja organizować ustawienia serwera internetowego. Jeden fizyczny serwer może pomieścić 50 różnych stron internetowych, z których każda ma własny plik .htaccess. Zapewnia on webmasterom dużą moc, co w przeciwnym razie byłoby niemożliwe. Ale dlaczego miałbyś go użyć?
Największym powodem jest bezpieczeństwo. Możesz zablokuj niektóre katalogi lub zabezpiecz je hasłem. Jest to idealne rozwiązanie dla prywatnych projektów lub nowych systemów zarządzania treścią, w których potrzebujesz trochę dodatkowego bezpieczeństwa. Ale są też typowe zadania, takie jak przekierowanie 404 komunikatów o błędach na określoną stronę internetową. To zajmuje tylko jedną linię kodu i może dramatycznie wpłynąć na reakcję odwiedzających na brakujące strony.
Prawdę mówiąc, niewiele mogę powiedzieć, aby przekonać innych, że plik .htaccess jest wart zrozumienia. Gdy zobaczysz to w akcji, możesz rozpoznać całą wartość pochodzącą z tego małego pliku konfiguracyjnego. Mam również nadzieję, że reszta tego artykułu może przedstawić kilka wnikliwych tematów, które pozwolą webmasterom w świetle zarządzania konfiguracją .htaccess.
Zezwól / Odmów dostępu
Możliwe jest rozpoznanie potencjalnych użytkowników spamu i odmówienie im dostępu do Twojej witryny. Może to być trochę ekstremalne, ale jeśli wiesz, że osoba lub grupa osób kierowała Twoją witrynę, możesz wybrać jedną z opcji. Możesz wybrać skierowanie do domeny, aby odmówić lub zakazać odwiedzającym adresu IP.
order allow, deny deny from 255.0.0.0 deny from 123.45.6. pozwól wszystkim
Te przykładowe kody zostały skopiowane z Htaccess Guide, ponieważ są idealnym szablonem do rozpoczęcia pracy. Zauważ, że w drugim adresie IP brakuje czwartej liczby całkowitej. Ten blok kodu będzie skierowany do pierwszego adresu IP (255.0.0.0) i każdego adresu IP z zakresu 123.45.6.0-255, następnie zezwól na cały inny ruch. Webmasterzy nie mogą używać tego tak często jak inne techniki, ale pomocne jest zrozumienie.
Zapobiegaj wyświetlaniu katalogu
Będą chwile, kiedy masz otwarty katalog, który jest skonfigurować, aby domyślnie zezwalać na przeglądanie. Oznacza to, że użytkownicy mogą przeglądać wszystkie pliki wymienione w wewnętrznej strukturze katalogów, takie jak folder obrazów. Niektórzy webmasterzy nie chcą zezwalać na katalogowanie i na szczęście fragment kodu jest dość łatwy do zapamiętania.
Opcje -Indeksy
Widziałem tę odpowiedź przedstawioną niezliczoną ilość razy w przepełnieniu stosu i może to być jedna z najłatwiejszych do zapamiętania reguł .htaccess.
Możliwe jest faktycznie utwórz wiele plików .htaccess wewnątrz każdego z tych katalogów więc może jedno z nich jest chronione hasłem, ale inne nie. I nadal możesz zachować Opcje -Indeksy aby odwiedzający nie mogli przeglądać witryny / obrazów / folderu.
Ochrona hasła
Ochrona katalogów hasłem jest bardzo powszechną procedurą zabezpieczenie obszarów administracyjnych i innych folderów kluczowych dla Twojej witryny. Czasami chcesz zaoferować dostęp tylko małej grupie osób. Inne czasy to hasła, które uniemożliwiają hakerom uzyskanie dostępu do panelu administracyjnego witryny. Ale w każdym razie jest to bardzo potężne rozwiązanie wielu problemów.
Poręczny przewodnik na temat ochrony hasłem zawiera ważne fragmenty kodu. Będziesz musiał wygeneruj plik haseł, który przechowa poświadczenia użytkownika / hasła. W ten sposób Apache może sprawdzić, jakie dane wprowadził użytkownik, aby sprawdzić, czy należy im przyznać dostęp. I zauważ, jak będziesz musiał wygenerować próbkę dla swojej nazwy użytkownika i hasła.
Polecam korzystanie z tego generatora htpassword, aby zaoszczędzić trochę czasu. Składnia zawsze będzie idealna i nie musisz samodzielnie szyfrować hasła. Inną świetną opcją jest zabezpieczenie hasłem całej listy katalogów. Możemy zobaczyć ten przykład w galerii fragmentów kodu CSS-Tricks.
AuthType Basic AuthName „Ten obszar jest chroniony hasłem” AuthUserFile /full/path/to/.htpasswd Wymagaj poprawnego użytkownika
Bezpieczeństwo dla WordPress
Aby dobrze wykorzystać ten pomysł ochrony hasłem, wyświetlmy przykład z prawdziwego świata. Będzie to bardziej skomplikowany fragment kodu wymusić uwierzytelnienie użytkownika dla każdego, kto uzyskuje dostęp do pliku wp-login.php WordPress. Oryginalne źródło znajdziesz w Ask Apache, który zawiera wiele innych fragmentów ochrony WordPress.
Zamień Odmów, Zezwól na odrzucenie ze wszystkich Spełnij wszystkie AuthName „Chronione przez AskApache” AuthUserFile /web/askapache.com/.htpasswda1 AuthType Podstawowe Wymagaj poprawnego użytkownika
A jeśli zamierzasz przestrzegać tych reguł .htaccess, może również pomóc zabezpieczyć hasłem obszar administracyjny. Zazwyczaj wp-login.php plik dostanie najwięcej trafień od ludzi próbujących brutalnie wtargnąć do twojego systemu. Tak więc byłyby tylko przykładowe kody więcej niż wystarczające bezpieczeństwo na swojej stronie WordPress.
Reguły przepisywania adresów URL HTTP
Przepisywanie adresów URL jest prawdopodobnie jednym z najczęstszych zastosowań plików .htaccess. Domyślne instalacje WordPressa mogą faktycznie wygeneruj plik .htaccess bezpośrednio z panelu administracyjnego. Pozwala to tworzyć ładne adresy URL, które nie mają struktury .php? P = 1.
Chcę przyjrzeć się temu przepisanemu przykładowi jak zaktualizować podkreślniki do kresek od tego zawiera wiele najważniejszych elementów.
Opcje + FollowSymLinks RewriteEngine Na RewriteBase / RewriteRule! (Html | php) $ - [S = 4] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _] *) _ ( [^ _] *) _ (. *) $ 1- $ 2- $ 3- $ 4- $ 5 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ ([^ _ ] *) _ (. *) $ 1- $ 2- $ 3- $ 4 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ ([^ _] *) _ (. *) $ 1- $ 2- $ 3 [E = uscor: Yes] RewriteRule ^ ([^ _] *) _ (. *) $ $ 1- $ 2 [E = uscor: Yes] RewriteCond% ENV: uscor ^ Tak $ RewriteRule (. *) Http: //d.com/$1 [R = 301, L]
RewriteEngine i RewriteBase zawsze można ustawić te dokładne wartości. Ale musisz włączyć RewriteEngine, aby cokolwiek innego mogło działać. Istnieje wiele przewodników online wyjaśniających, jak włączyć mod_rewrite, a Twój dostawca hostingu może również pomóc.
Zauważ, że składnia jest zgodna ze wzorem Przepisz reguły na górze. Zasady te są używane dopasuj do przypadków wysyłanych jako żądanie HTTP. Na te odpowiedzi odpowiada RewriteRule, która w tym przypadku przekierowuje wszystko do domeny d.com. Nawiasy końcowe, takie jak [R = 301, L] nazywane są flagami przepisywania, które są ważne, ale bardziej zaawansowanym tematem.
Składnia mod_rewrite jest zdecydowanie trochę myląca, ale nie daj się zastraszyć! Fragmenty mogą wyglądać znacznie łatwiej w innych przykładach.
Po rozpoczęciu pracy muszę polecić tę aplikację internetową mod_rewrite, która pomaga generować próbki kodu przy użyciu prawdziwych adresów URL. To wspaniałe narzędzie, ponieważ możesz wyszukiwać różne elementy w składni, aby zobaczyć, co faktycznie robią w regułach Przepisz. Oto kolejny świetny samouczek z prostszym przykładem do nauki:
RewriteRule ^ dir / ([0-9] +) /? $ /Index.php?id=$1 [L]
Nie próbuj przeciążać się tymi wszystkimi naraz. Dopiero po 3-4 miesiącach naprawdę zrozumiałem, jak przepisać adresy URL za pomocą [0-9a-zA-Z] + i podobnych wzorców. Ćwicz dalej i obiecuję, że zdobędziesz takie rzeczy jak zwykła wiedza.
Fragmenty kodu dla webmasterów
Uwielbiam łatwe w użyciu fragmenty i chcę zebrać tę małą kolekcję odpowiednich kodów .htaccess dla webmasterów. Każdy z tych pomysłów może pasować do twojego własnego pliku .htaccess wraz z innymi blokami kodu. Większość z tych fragmentów jest świetna rozwiązywanie szybkich problemów lub poprawek w środowisku serwera WWW. Wyobraź sobie idealną konfigurację Apache dla nowych webmasterów, którzy dopiero zaczynają grać online.
Ustawienie DirectoryIndex
Polecenie dla DirectoryIndex jest używane powszechnie w jednej linii. Możesz powiedzieć Apache, które dokumenty powinny być początkowo traktowane jako “Główny” dokument. Domyślnie będzie to elementy docelowe, takie jak index.html, index.php, index.asp i inne pliki indeksu. Ale korzystając z tego fragmentu kodu, który skopiowałem poniżej, masz możliwość uczynienia tego dokumentu głównego dowolnie.
DirectoryIndex index.html index.cgi index.php
Kolejność dokumentów powinna zaczynać się od najważniejszej i przechodzić przez szeregi do najmniej ważnych. Jeśli więc nie mamy pliku HTML lub CGI, to nastąpi przejście do trybu awaryjnego index.php. Możesz nawet nazwać te pliki home.php lub someotherfile.php i jest to poprawna składnia.
Wymuś subdomenę WWW lub inną niż WWW
Google może pracować z obiema wersjami domeny Twojej witryny, jeśli nie określisz www.domain.com Lub tylko domena.com. Z mojego doświadczenia wynika, że najlepiej jest wybierz jedną z nich i ustaw ją jako jedyny wybór przez .htaccess. Następnie Google nie indeksuje różnych adresów URL, niektóre z nich wskazują na subdomenę WWW, a inne nie.
# Wymuś subdomenę RewriteEngine WWW na RewriteCond% HTTP_HOST ^ domena.com [NC] RewriteRule ^ (. *) $ Http://www.domain.com/$1 [L, R = 301] # Brak subdomen RewriteEngine On RewriteCond% HTTP_HOST! ^ Domain.com $ [NC] RewriteRule ^ (. *) $ Http://domain.com/$1 [L, R = 301]
Ten fragment kodu pochodzi z archiwum CSS-Tricks i stanowi bardzo przydatne rozwiązanie. Powinieneś zaktualizować domenę, aby była czymkolwiek, czego potrzebujesz dla własnej strony internetowej. W przeciwnym razie pojawią się problemy i natychmiast zauważysz! Ale bardzo wspieram wymuszanie jednej z tych dwóch opcji i jest na szczycie mojej listy zadań po uruchomieniu nowej strony internetowej.
Wymuś pobieranie plików multimedialnych
Inny dość ważny fragment pozwala na wymuszenie niektórych typów mediów pobieranie zamiast wyświetlania w przeglądarce. Natychmiast mogę myśleć o dokumentach PDF i plikach audio MP3, które mogą być prezentowane w formacie do pobrania, ale jak to zrobić upewnij się, że są do pobrania? Znalazłem podobny artykuł opublikowany w Htaccess Guide, który opisuje ten fragment kodu.
AddType application / octet-stream .zip .mp3 .mp4
Możesz dołączyć jeszcze więcej typów plików na końcu tej linii. Wszystkie formaty mediów używające typu MIME oktetowego strumienia będą do pobrania. Wymuszenie tego przez .htaccess jest bardzo bezpośrednią drogą, aby upewnić się, że ludzie nie mogą oglądać tych plików w przeglądarce.
Niestandardowe dokumenty błędów
Ostatni ostatni element, który chcę dodać, to pełny szablon niestandardowych dokumentów błędów. Zazwyczaj te kody liczbowe są widoczne tylko na końcu serwera. Ale jest wiele takich dokumentów o błędach, które powinieneś znać. Może być kilka przykładów Błędy 403/404 i Przekierowanie 301.
Ten szablon kodu błędu zaczyna się od 100 i przesuwa w górę do 500 błędów. Pamiętaj, że oczywiście nie potrzebujesz ich wszystkich. Konieczne byłyby tylko najczęstsze błędy i prawdopodobnie kilka niejasnych fragmentów, jeśli czujesz potrzebę.
Jeśli nie rozpoznajesz kodu, poszukaj go na Wikipedii, aby uzyskać lepsze zrozumienie.
ErrorDocument 100 / 100_CONTINUE ErrorDocument 101 / 101_SWITCHING_PROTOCOLS ErrorDocument 102 / 102_PROCESSING ErrorDocument 200 / 200_OK ErrorDocument 201 / 201_CREATED ErrorDocument 202 / 202_ACCEPTED ErrorDocument 203 / 203_NON_AUTHORITATIVE ErrorDocument 204 / 204_NO_CONTENT ErrorDocument 205 / 205_RESET_CONTENT ErrorDocument 206 / 206_PARTIAL_CONTENT ErrorDocument 207 / 207_MULTI_STATUS ErrorDocument 300 / 300_MULTIPLE_CHOICES ErrorDocument 301 / 301_MOVED_PERMANENTLY ErrorDocument 302 / 302_MOVED_TEMPORARILY ErrorDocument 303 / 303_SEE_OTHER ErrorDocument 304 / 304_NOT_MODIFIED ErrorDocument 305 / 305_USE_PROXY ErrorDocument 307 / 307_TEMPORARY_REDIRECT ErrorDocument 400 / 400_BAD_REQUEST ErrorDocument 401 / 401_UNAUTHORIZED ErrorDocument 402 / 402_PAYMENT_REQUIRED ErrorDocument 403 / 403_FORBIDDEN ErrorDocument 404 / 404_NOT_FOUND ErrorDocument 405 / 405_METHOD_NOT_ALLOWED ErrorDocument 406 / 406_NOT_ACCEPTABLE ErrorDocument 407 / 407_PROXY_AUTHENTICATION_REQUIRED ErrorDocument 408 / 408_REQUEST_TIME_OUT ErrorDocument 409 / 409_CONFLICT ErrorDocument 410 / 410_GONE ErrorDocument 411 / 411_LENGTH_REQUIRED ErrorDocument 412 / 412_PRECONDITION_FAILED ErrorDocument 413 / 413_REQUEST_ENTITY_TOO_LARGE ErrorDocument 414 / 414_REQUEST_URI_TOO_LARGE ErrorDocument 415 / 415_UNSUPPORTED_MEDIA_TYPE ErrorDocument 416 / 416_RANGE_NOT_SATISFIABLE ErrorDocument 417 / 417_EXPECTATION_FAILED ErrorDocument 422 / 422_UNPROCESSABLE_ENTITY ErrorDocument 423 / 423_LOCKED ErrorDocument 424 / 424_FAILED_DEPENDENCY ErrorDocument 426 / 426_UPGRADE_REQUIRED ErrorDocument 500 / 500_INTERNAL_SERVER_ERROR ErrorDocument 501 / 501_NOT_IMPLEMENTED ErrorDocument 502 / 502_BAD_GATEWAY ErrorDocument 503 / 503_SERVICE_UNAVAILABLE ErrorDocument 504 / 504_GATEWAY_TIME_OUT ErrorDocument 505 / 505_VERSION_NOT_SUPPORTED ErrorDocument 506 / 506_VARIANT_ALSO_VARIES ErrorDocument 507 / 507_INSUFFICIENT_STORAGE ErrorDocument 510 / 510_NOT_EXTENDED
Online .htaccess Webapps
- Htaccess Builder
- .generator przekierowań dostępu
- .htaccessEditor - Utwórz plik .htaccess
- Mod Rewrite Generator autorstwa GenerateIt.net
Inne przydatne zasoby
- .dostęp do Httpd Wiki
- Oficjalna dokumentacja Apache htaccess
- Zapytaj blog Apache - Archiwum Htaccess
- Ostateczny przewodnik po htaccess i mod_rewrite
- Wszystko, co chciałeś wiedzieć o regułach Mod_Rewrite, ale bałeś się zapytać
Końcowe przemyślenia
W Internecie można znaleźć wiele niezliczonych zasobów dotyczących plików .htaccess. Moje powiązane artykuły i aplikacje internetowe są doskonałym miejscem na rozpoczęcie pracy. Ale ćwiczcie nowe pomysły i nie bójcie się testowanie fragmentów kodu. Tak długo jak masz plik kopii zapasowej wtedy możesz przetestować wszystko, co ci się podoba i jest to zabawne doświadczenie edukacyjne.
Jeśli masz inne pomysły lub sugestie dotyczące zarządzania .htaccess, podziel się z nami w obszarze dyskusji na temat postów poniżej.