mod-rewrite
Podstawowe wewnętrzne przepisywania
Szukaj…
Fantazyjny URL do skryptu php
W tym przykładzie przepisujemy adresy URL w postaci http://example.com/topic/id-seoname
do skryptu php, który pobiera identyfikator jako dane wejściowe. W tym przykładzie oczekuje się, że reguła będzie znajdować się w kontekście „na katalog” .
RewriteEngine on
RewriteRule ^topic/([0-9]+)-[^/]*/?$ /topics.php?id=$1 [L]
W tym przykładzie topic/
jest wspólnym przedrostkiem wszystkich tematów. Po nim następuje liczba używana przez skrypt. Na koniec wyświetlana jest nazwa SEO. Ta nazwa seo jest ignorowana przez mod_rewrite, ponieważ jest tam tylko z powodów seo. Drugi argument RewriteRule
zawiera adres URL do przepisania. Symbol zastępczy $1
jest zastępowany zawartością pierwszej grupy przechwytywania w wyrażeniu regularnym przed nim. W takim przypadku zostanie zastąpione tym, co odpowiada ([0-9]+)
.
Adres URL z ciągiem zapytania do skryptu php
Aby dopasować ciąg zapytania, do RewriteRule
należy dodać warunek. Odbywa się to poprzez umieszczenie dyrektyw RewriteCond
przed odpowiednią regułą. W poniższym przykładzie dynamicznie wewnętrznie przepisujemy stary adres URL na nowy adres URL.
RewriteCond %{QUERY_STRING} ^name=([^&]*)$
RewriteRule ^oldscript\.php$ newscript.php?username=%1 [L]
Pamiętaj, że aby dopasować dosłowną kropkę, musimy uciec przed nią ukośnikiem. %1
zostaje zastąpione pierwszą grupą przechwytywania poprzedniego warunku. W tym przypadku jest on zastępowany przez wszystko, co odpowiada ([^&]*)
.