P H P  V I E T  N A M  P O R T A L
Xin chào, Khách. Vui lòng đăng nhập hoặc đăng ký tài khoản.
Bạn đã quên email kích hoạt?






     Trang chủ | Download | Tự học PHP | Kho tư liệu | Diễn đàn
Trang: [1]
  In  
Tác giảChủ đề: Chút rắc rối với URLRewrite, mong mọi người giải thích dùm  (Đã đọc 1380 lần)
linhnn
PHP Starter
*
Posts: 2


Xem hồ sơ Email
« on: September 08, 2010, 07:35:41 AM »

Mình mới biết cách dùng URLRewrite, đang có vấn đề này không biết làm sao
Nội dung file .htaccess của mình như sau:
Code:
RewriteEngine on
RewriteRule cat/(.*)/$ news_cat1.php?Ten_KhongDau=$1 [L]
RewriteRule cat/(.*)/(.*)/$ news_cat1.php?Ten_KhongDau=$1&page=$2 [L]

Trong đó Ten_KhongDau là The-Thao, Xa-Hoi, hoặc Giai-Tri; còn page là biến chỉ số trang đang duyệt (mình đang làm phân trang)
Khi mình test trên trình duyệt là : http://localhost/test/cat/The-Thao/ thì hiển thị ra nội dung bình thường.
Nếu ghi là http://localhost/test/cat/The-Thao/2/ để hiện lên trang thứ 2 thì lại không hiển thị gì hết. Ở đây mình ví dụ với trang 2, các trang khác cũng bị như vậy.
Nhưng nếu trong file .htaccess mình bỏ dòng RewriteRule cat/(.*)/$ news_cat1.php?Ten_KhongDau=$1 [L] thì trang http://localhost/test/cat/The-Thao/2/ lại hiện ra bình thường.
Mong mọi người cho mình biết nguyên nhân tại sao.
 Undecided
Logged
pntrinh
PHP Starter
*
Posts: 2


Xem hồ sơ
« Trả lời #1 on: September 09, 2010, 01:36:50 AM »

bạn nên sửa lại như sau:
Code:
RewriteEngine on
RewriteRule cat/(.*)/(.*)/$ news_cat1.php?Ten_KhongDau=$1&page=$2 [L]
RewriteRule cat/(.*)/$ news_cat1.php?Ten_KhongDau=$1 [L]

vì khi có /cat/xahoi/2/ thì nó cũng đúng với dòng 1 và dừng lại với [L] vì (.*) là tất cả các ký tự kể cả dấu /. bạn nên sửa (.*) lại thành ([^\/]*)
Good luck
Logged
linhnn
PHP Starter
*
Posts: 2


Xem hồ sơ Email
« Trả lời #2 on: September 09, 2010, 04:31:25 AM »

Hay quá! Cám ơn bạn pntrinh rất nhiều!!! Cheesy
Logged
Trang: [1]
  In  
 
Chuyển sang:  

Powered by SMF 1.1.15 | SMF © 2006-2007, Simple Machines . Modified by PHPVN Members