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 ([^&]*) .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow