2012-02-02 47 views
12

Tôi có cấu trúc được gọi là /pdf/ nơi tệp PDF được tạo được lưu trữ. Tôi đang cố gắng sử dụng .htaccess để định tuyến khách truy cập vào thư mục PDF..htaccess cho URL PDF

tôi có quy tắc này trong tập tin .htaccess của tôi:

RewriteEngine On 
RewriteBase/
RewriteRule (.*) index.php?page=$1.html 
RewriteRule ??? for pdf?? 

(Lưu ý ??? dấu ...)

Khi tôi cố gắng truy cập vào url /manual_chap_1 nó đang làm việc. Nhưng khi tôi thử /pdf/manual_chap_1 nó dường như không hoạt động. Dưới đây là một số kết quả tôi thấy:

$_GET[page] => index.php.html

Tôi muốn để có thể tạo ra các tập tin PDF, nếu các tập tin PDF không tồn tại ở vị trí yêu cầu, và sau đó, tôi muốn nó load một trang HTML .

Trả lời

12

Chào mừng bạn đến Stackoverflow, hãy thử này:

RewriteEngine On 
RewriteBase/

RewriteRule ^pdf/([a-z0-9\-_\.]+)$ pdf.php?file=$1 [L,NC,QSA] 

RewriteCond %{REQUEST_URI} !^/pdf 
RewriteRule ^([a-z0-9\-_\.]+)/?$ index.php?page=$1.html [L,NC,QSA] 

L: Các [L] cờ gây mod_rewrite để ngừng xử lý các thiết lập quy tắc. Trong hầu hết các ngữ cảnh, điều này có nghĩa là nếu quy tắc phù hợp, sẽ không có quy tắc nào khác được xử lý. Điều này tương ứng với lệnh cuối cùng trong Perl, hoặc lệnh ngắt trong C. Sử dụng cờ này để cho biết rằng quy tắc hiện tại nên được áp dụng ngay lập tức mà không xem xét các quy tắc khác.

QSA: Khi URI thay thế chứa chuỗi truy vấn, hành vi mặc định của RewriteRule là hủy chuỗi truy vấn hiện tại và thay thế bằng chuỗi truy vấn mới tạo. Sử dụng cờ [QSA] làm cho các chuỗi truy vấn được kết hợp.

NC: Sử dụng cờ [NC] làm cho RewriteRule được đối sánh theo cách phân biệt chữ hoa chữ thường. Nghĩa là, nó không quan tâm liệu các chữ cái có xuất hiện như chữ hoa hay chữ thường trong URI được so khớp hay không.

Ngoài ra, tôi khuyên bạn nên sử dụng dấu gạch ngang thay vì gạch dưới.

+0

nhiều người cảm ơn rất nhiều – Maggie

+0

bạn rất hoan nghênh –

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