mod_rewrite - Lista zadań

Warsztat utrwalający zagadnienia związane z mod_rewrite oraz .htaccess

Wytyczne:

Lista zadań:

  1. Przekierowanie HTTP->HTTPS
  2. Przekierowanie pod nowy adres URL
  3. ukrycie rozszerzeń plików
  4. przyjazny SEO (czysty) adres URL
  5. ograniczanie dostępu
  6. strony błędów, np. 404 (zadanie na ocenę 6)

Mini dokumentacja


Dla pełnej dokumentacji w języku angielskim zobacz

Dyrektywy (polecenia) mod_rewrite:

  1. RewriteEngine - włączenie silnika przepisywania adresu URL
  2. RewriteCond - warunek do spełnienia, by reguła mogła zadziałać. Można stosować kilka, jedna po drugiej (działają jak: IF (A && B){})
  3. RewriteRule - ostateczna reguła do wykonania

"Przełączniki" dla poleceń Rewrite -Cond i -Rule:

!   - negacja
-d  - katalogi (directory)
-f  - pliki (file)
$1  - pierwszy parametr
$2  - drugi parametr, itd

Flagi dla Rewrite Rule (opcjonalne parametry):

Dyrektywy RewriteCond

Składnia wywołania dyrektywy (zmiennej): %{DYREKTYWA} jest odpowiednikiem w PHP: $zmienna

Na czerwono zaznaczono popularniejsze (częściej używane) dyrektywy.

HTTP headers: connection & request:
HTTP_ACCEPT
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_REFERER
HTTP_USER_AGENT
AUTH_TYPE
CONN_REMOTE_ADDR
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT
IPV6
PATH_INFO
QUERY_STRING
REMOTE_ADDR
REMOTE_HOST
REMOTE_IDENT
REMOTE_PORT
REMOTE_USER
REQUEST_METHOD
SCRIPT_FILENAME
server internals: date and time: specials:
DOCUMENT_ROOT
SCRIPT_GROUP
SCRIPT_USER
SERVER_ADDR
SERVER_ADMIN
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
API_VERSION
CONN_REMOTE_ADDR
HTTPS
IS_SUBREQ
REMOTE_ADDR
REQUEST_FILENAME
REQUEST_SCHEME
REQUEST_URI
THE_REQUEST