2011-02-21 33 views
32

Đây là mã .htaccess cho liên kết cố định trong WordPress. Tôi không hiểu cách làm việc này. Ai đó có thể giải thích?Đây là mã .htaccess trong WordPress. Ai đó có thể giải thích nó hoạt động như thế nào?

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Tôi googled và phát hiện ra rằng -f-d phần nghĩa để cung cấp cho các thư mục và các file thực ưu tiên cao hơn.

Nhưng sau đó, ^index\.php$ - [L]RewriteRule . /index.php [L] là gì?

WordPress xử lý danh mục, thẻ, trang và v.v ... chỉ với điều này?

Điều đó có xảy ra trong nội bộ không? Nếu vậy, tôi quan tâm đến việc học cách làm điều đó trong PHP.

Cảm ơn

Trả lời

48

^index\.php$ - [L] ngăn chặn yêu cầu index.php từ được viết lại, để tránh một kiểm tra hệ thống tập tin không cần thiết. Nếu yêu cầu là dành cho index.php, chỉ thị sẽ không làm gì - và ngừng xử lý các quy tắc [L].

Khối này là tất cả một quy tắc và nói rằng nếu đó không phải là tệp thực và không phải là thư mục thực, hãy định tuyến lại yêu cầu đến index.php.

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

index.php tự giải thích URL được yêu cầu của khách hàng (PHP có thể thấy URL được yêu cầu sử dụng $_SERVER['REQUEST_URI']) và nó gọi đúng mã cho hiển thị trang người dùng yêu cầu.

+0

Tôi nhận thấy rằng wordpress chuyển hướng domain.com/index.php sang domain.com. Nếu tôi muốn làm điều gì đó như vậy trong PHP, tôi có nên sử dụng chức năng tiêu đề không? Tôi tự hỏi là có một cách tốt hơn (công cụ tìm kiếm thân thiện hơn? Hiệu quả hơn?) Để làm điều đó. – webnat0

+0

Tôi không thấy lý do nào chuyển hướng 301 từ chức năng Tiêu đề sẽ không phù hợp. Bạn có thể tinh chỉnh các thiết lập mod_rewrite của bạn để thực hiện chuyển hướng 301 nhanh chóng theo lý thuyết, nhưng nó sẽ không tạo ra sự khác biệt lớn. –

+2

'RewriteRule^index \ .php $ - [L]': không phải là nó thừa, vì 'index.php' thực sự là một tập tin thực (do đó nhấn' RewriteCond% {REQUEST_FILENAME}! -f')? – matpop

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