2012-02-01 31 views
5

Khi sử dụng URL viết lại để làm đẹp, có bất kỳ suy nghĩ nào về việc có nên thực hiện các phép tính nội dung của bạn trong một tập lệnh PHP hay mã cứng nó vào tệp .htaccess không?Để viết lại URL, sử dụng .htaccess hoặc PHP để xác định nội dung được sử dụng?

Ví dụ, WP thêm quy tắc đơn giản để các tập tin .htaccess

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

Mà chỉ đạo tất cả mọi thứ để trang index.php. Sau đó, nó có một kịch bản PHP (canonical.php) phân tích cú pháp $ _SERVER ['REQUEST_URI'] để tìm ra nội dung thực sự kéo lên.

Thay vì sử dụng PHP để xử lý tất cả những điều này, nó có thể được nhập trực tiếp vào tập tin .htaccess đi qua các mục truy vấn từ URL, tương tự như:

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

Có ai biết những ưu điểm/nhược điểm của hai phương pháp? Tôi nghĩ rằng các phương pháp PHP cung cấp một chút linh hoạt hơn, nhưng tôi có thể sai. Tôi không có ý tưởng trong đó có chi phí cao hơn mặc dù.

+0

Theo tôi, các yêu cầu định tuyến thông qua một tập lệnh PHP duy nhất cho phép bạn có cơ hội đánh chặn các yêu cầu không hợp lệ và xử lý lỗi một cách thích hợp. Ví dụ: trang lỗi tùy chỉnh cho biết trang không được tìm thấy, nhưng đây là một số trang tương tự. –

+0

Đó là những gì tôi đang nghĩ. Có vẻ dễ dàng hơn nhiều khi sử dụng tập lệnh PHP để thực hiện tất cả các thao tác khi đang di chuyển. – edeneye

Trả lời

2

Ý kiến ​​của tôi là xử lý PHP tốt hơn nhiều. Chỉ có thể trừ đi là nó có thể chậm hơn, nhưng không quá nhiều, trong thời gian tạo trang tổng thể, bạn sẽ không nhận thấy bất kỳ sự khác biệt nào. Nhưng những bất lợi là:

  1. nếu trang web của bạn phát triển, bạn phải cung cấp quy tắc mới .htaccess mọi lúc, điều này không thuận tiện. Ví dụ: nếu bạn muốn thêm một đối số GET khác vào một số cuộc gọi tập lệnh, bạn phải sửa đổi lại các quy tắc .
  2. không thoải mái khi bạn di chuyển từ một máy chủ sang một máy chủ khác. trong một số trường hợp, bạn sẽ cần thay đổi cấu trúc thư mục và tất cả các quy tắc, tùy thuộc vào cấu trúc đó.
  3. nếu bạn vì lý do nào đó, quyết định chuyển trang web của bạn từ Apache sang nginx, IIS hoặc một số máy chủ khác , bạn sẽ gặp khó khăn khi chuyển đổi các quy tắc .htaccess sang một số định dạng máy chủ khác.

Vì vậy, tốt hơn hết là xử lý chúng bằng PHP.

0

Phương pháp thứ 2 chắc chắn không phải là một phương pháp hay. Vì nó yêu cầu bạn thêm quy tắc mới vào .htaccess mọi lúc bạn muốn phần mới trên trang web của mình.

Ví dụ, bạn có thể muốn thêm một category mới, bạn cần phải thêm

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

Đối với việc thực hiện/trên cao, tôi nghĩ rằng bạn không cần phải điều tối ưu hóa vi như thế này. Hầu hết thời gian khi nó đến vấn đề hiệu suất nó luôn luôn liên quan với DB hoặc I/O vấn đề (Trừ khi có mã thực sự xấu trong ứng dụng làm chậm trang web xuống).

+0

Đó là những gì tôi đã suy nghĩ, và tại sao phương pháp PHP sẽ "tốt hơn" từ một quan điểm dễ sử dụng. Nếu có một sự khác biệt đáng kể trên đầu, tôi sẽ phải xem xét một hoặc khác. – edeneye

Các vấn đề liên quan