2009-07-10 48 views
5

Tôi đang phát triển một trang web có chứa 3 trang (Trang chủ, page2, page3) ... trong trang thứ hai có thanh điều hướng, với 4 mục (subpage1, subpage2, ...), mà tôi sử dụng để thay thế nội dung của trang 2 với các biến url! Nói cách khác, mục thứ hai của thanh điều hướng ở điểm page2 tới:Tại sao RewriteRule này không hoạt động?

http://localhost/uk/page2/index.php?pg=subpage2 

mục 3 điểm đến:

http://localhost/uk/page2/index.php?pg=subpage3 

Bây giờ tôi muốn sử dụng url thân thiện hơn qua .htaccess!

Tôi đã viết này:

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

trong .htaccess đặt trong thư mục gốc!

Nhưng không hoạt động! Xin hãy giúp !!!

Trả lời

9

Khi bạn đang sử dụng .htaccess bạn không có dấu gạch chéo hàng đầu:

RewriteEngine On 
RewriteRule ^uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 
+0

Nhờ câu trả lời của bạn! Cũng với điều này, viết lại không hoạt động !!! –

+0

Khi bạn nói nó không hoạt động, điều gì xảy ra chính xác? – Greg

+0

Hãy thử đặt một số rác vào trong .htaccess - bạn sẽ nhận được 500 Lỗi Máy chủ. Nếu bạn không làm vậy, .htaccess của bạn không được tải – Greg

0

Nó có thể là dấu gạch chéo ở cuối, vì vậy thay đổi điều này:

RewriteEngine On 
RewriteRule /uk/page2/(.*)/$ /uk/page2/index.php?pg=$1 

này :

RewriteEngine On 
RewriteRule ^(.*)uk/page2(/?)(.*)$ /uk/page2/index.php?pg=$3 

Một điều bạn nên kiểm tra là bạn đã đặt AllowOverride thành Tất cả trong tệp httpd.conf, trong thay cho None. Nếu nó được đặt thành Không, bạn sẽ không được phép làm bất cứ điều gì với .htaccess.

2

G'day,

Tôi khuyên bạn nên bật tùy chọn cấu hình RewriteLog ở mức cao để kiểm tra xem điều gì đang thực sự xảy ra trong trang bìa.

Has AllowOverides been enabled?</obvious> (-: 

Có vẻ như bạn đang trên may mắn sử dụng .htaccess

mod_rewrite Không ngờ cung cấp thao tác URL trong mỗi thư mục ngữ cảnh, ví dụ, trong file .htaccess, mặc dù chúng được đạt đến một thời gian rất dài sau khi các URL đã được dịch sang tên tập tin. Nó phải được theo cách này bởi vì các tập tin htaccess. Sống trong hệ thống tập tin, do đó, chế biến đã đạt đến giai đoạn này. Nói cách khác: Theo các giai đoạn API tại thời điểm này thì đã quá muộn cho bất kỳ thao tác URL nào. - Apache mod_rewrite doc.s (nhấn mạnh mỏ)

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