2012-02-01 12 views
5

Podczas stosowania przepisywania adresów URL do upiększania, czy są jakieś przemyślenia, czy wykonać obliczenia treści w skrypcie PHP, czy też zakodować go w pliku .htaccess?Aby przepisać adres URL, użyj .htaccess lub PHP, aby określić używaną zawartość?

Na przykład, WP dodaje prostą regułę do pliku .htaccess

RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

który kieruje wszystko do strony index.php. Następnie ma skrypt PHP (canonical.php), parsujący $ _SERVER ['REQUEST_URI'], aby następnie dowiedzieć się, jakie treści faktycznie przyciągają.

Zamiast używać PHP do obsługi to wszystko, może być wprowadzony bezpośrednio do pliku .htaccess przejściu elementy zapytania z adresu URL, podobny do:

RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1 

Czy ktoś zna zalety/wady dwie metody? Myślę, że metoda PHP oferuje nieco większą elastyczność, ale mogę się mylić. Nie mam pojęcia, który ma więcej narzutów.

+0

Moim zdaniem, kierowanie żądań za pomocą pojedynczego skryptu PHP pozwala na przechwycenie nieprawidłowych żądań i odpowiednie postępowanie z błędem. Na przykład niestandardowa strona błędu informująca, że ​​strona nie została znaleziona, ale oto kilka podobnych stron. –

+0

Tak właśnie myślałem. Łatwiej jest używać skryptu PHP do wykonywania wszystkich operacji w locie. – edeneye

Odpowiedz

2

Uważam, że obsługa PHP jest znacznie lepsza. Jedyny możliwy minus to to, że może być wolniejszy, ale nie tak bardzo, w ogólnym czasie generowania strony nie zauważysz żadnej różnicy. Ale wady są:

  1. jeśli witryna rośnie, trzeba dostarczyć nowe zasady w .htaccess za każdym razem, co nie jest wygodne. Jeśli, na przykład, chcesz dodać jeszcze jeden argument GET do jakiegoś wywołania skryptu, musisz ponownie zmienić reguły .
  2. To nie jest wygodne, gdy przenosisz się z jednego hosta do innego . w niektórych przypadkach konieczna będzie zmiana struktury katalogu i wszystkich reguł, od których zależy.
  3. Jeśli z jakiegoś powodu zdecydujesz się przenieść swoją witrynę z Apache na inny serwer, nginx, IIS lub inny , będziesz miał mnóstwo problemów z konwersją swoich .htaccess na inny format serwera.

Z pewnością lepiej jest sobie z nimi poradzić przez PHP.

0

Druga metoda z pewnością nie jest dobra. Ponieważ wymaga to dodania nowej reguły do ​​.htaccess za każdym razem, gdy potrzebujesz nowej sekcji w swojej witrynie.

Na przykład możesz dodać nowy category trzeba dodać

RewriteRule ^categories/([\w-]+)/?$ categories.php 

do wykonywania/narzutu, myślę, że nie masz do mikro zoptymalizować coś takiego. Przez większość czasu, gdy dochodzi do problemów z wydajnością, zawsze wiąże się to z problemami DB lub I/O (chyba że w aplikacji jest naprawdę zły kod, który spowalnia witrynę).

+0

Tak właśnie myślałem i dlaczego metoda PHP byłaby "lepsza" z punktu widzenia łatwości użytkowania. Gdyby istniała znaczna różnica napowietrzna, musiałbym rozważyć jedną lub drugą. – edeneye

Powiązane problemy