.htaccess: Różnice pomiędzy wersjami

Linia 14: Linia 14:
 
  RewriteCond %{REQUEST_URI} !^/test/
 
  RewriteCond %{REQUEST_URI} !^/test/
 
  RewriteRule ^(.*)$ /test/$1 [L]
 
  RewriteRule ^(.*)$ /test/$1 [L]
 +
 +
====Przekierowanie przy błędzie 301====
 +
 +
Przekierowanie dla jednej strony do ''domena'':
 +
Redirect 301 /strona.php <nowiki>http://</nowiki>''domena''/strona.html
 +
Przekierowanie całej strony do ''domena'':
 +
Redirect 301 / <nowiki>http://</nowiki>''domena''/
 +
Przekierowanie całej strony do subfolderu ''domena'':
 +
Redirect 301 / <nowiki>http://</nowiki>''domena''/subfolder/
 +
Przekierowanie subfolderu strony do ''domena'':
 +
Redirect 301 /subfolder <nowiki>http://</nowiki>''domena''/
 +
Przekierowanie żądań do plików html do plików z tą samą nazwą z rozszerzeniem php:
 +
RedirectMatch 301 (.*)\.html$ <nowiki>http://</nowiki>''domena''$1.php
 +
  
 
====Zabezpieczenie przed hotlinkowaniem obrazków====
 
====Zabezpieczenie przed hotlinkowaniem obrazków====
Linia 19: Linia 33:
 
  RewriteEngine on
 
  RewriteEngine on
 
  RewriteCond %{HTTP_REFERER} !^$
 
  RewriteCond %{HTTP_REFERER} !^$
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://''domena''$      [NC]</nowiki>
+
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://</nowiki>''domena''$      [NC]
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://.*\.''domena''$      [NC]</nowiki>
+
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://</nowiki>.*\.''domena''$      [NC]
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://''domena''/.*$      [NC]</nowiki>
+
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://</nowiki>''domena''/.*$      [NC]
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://.*\.''domena''/.*$      [NC]</nowiki>
+
  <nowiki>RewriteCond %{HTTP_REFERER} !^http://</nowiki>.*\.''domena''/.*$      [NC]
 
  RewriteRule .*\.(jpg|jpeg|gif|bmp)$ - [F,NC]
 
  RewriteRule .*\.(jpg|jpeg|gif|bmp)$ - [F,NC]
  

Wersja z 17:48, 14 kwi 2015

Serwer WWW obsługuje httpd nginx z autorskim modułem obsługującym "standard" htaccess pozwalający tworzyć własne zestawienia reguł rewrite.

Wszystkie ustawienia można edytować samodzielnie tworząc plik .htaccess w folderze public_html/ (lub ewentualnie podfolderach) danej domeny.

Przykłady

Poniżej znajduje się kilka przykładów zastosowania tego pliku. Część z nich jest autorstwa użytkowników MyDevil.

Przekierowanie subdomeny na podkatalog

Przekierowanie subdomeny test.domena na domena/test bez tworzenia vhosta.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?test\.domena$ [NC]
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule ^(.*)$ /test/$1 [L]

Przekierowanie przy błędzie 301

Przekierowanie dla jednej strony do domena:

Redirect 301 /strona.php http://domena/strona.html

Przekierowanie całej strony do domena:

Redirect 301 / http://domena/

Przekierowanie całej strony do subfolderu domena:

Redirect 301 / http://domena/subfolder/

Przekierowanie subfolderu strony do domena:

Redirect 301 /subfolder http://domena/

Przekierowanie żądań do plików html do plików z tą samą nazwą z rozszerzeniem php:

RedirectMatch 301 (.*)\.html$ http://domena$1.php


Zabezpieczenie przed hotlinkowaniem obrazków

Hotlinkowanie to umieszczanie na stronie obrazków, które użytkownik pobiera z zewnętrznego serwera. Przykładowa blokada wygląda następująco.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://domena$      [NC]
RewriteCond %{HTTP_REFERER} !^http://.*\.domena$      [NC]
RewriteCond %{HTTP_REFERER} !^http://domena/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://.*\.domena/.*$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|bmp)$ - [F,NC]

Zabezpieczanie katalogu hasłem

Istnieje możliwość zabezpieczenia całego katalogu na stronie hasłem (lub nawet całej strony WWW). W poniższych przykładach argument username należy zastąpić loginem wybranego użytkownika, a argument login loginem konta MyDevil.

Plik z hasłami należy utworzyć dodając pierwszego użytkownika poleceniem htpasswd -c /usr/home/login/hasla.passwd username. Folder, który ma być chroniony hasłem powinien zawierać plik .htaccess o następującej treści:

AuthType Basic
AuthUserFile "/usr/home/login/hasla.passwd"
require valid-user
AuthName "Zabezpieczony katalog"

AuthUserFile wskazuje na plik, który utworzono wcześniej. Jest możliwość używania różnych plików z loginami i hasłami do różnych folderów. Usuwanie użytkownika odbywa się za pomocą polecenia htpasswd -D /usr/home/login/hasla.passwd username.

Domyślne kodowanie plików tekstowych

W przypadku udostępniania plików .txt w których nie sposób określić kodowania znacznikiem meta bądź innych plików w których nie ustawiono kodowania można wymusić prawidłowe wyświetlanie przez przeglądarki za pomocą dyrektywy AddDefaultCharset, np.

AddDefaultCharset utf-8