banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cách viết lại đường dẫn bằng mod_rewrite  XML
  [Question]   Cách viết lại đường dẫn bằng mod_rewrite 05/03/2009 06:43:38 (+0700) | #1 | 171943
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Ai có kinh nghiệm về cách viết lại đường dẫn bằng mod_rewrite cho e hỏi .E có đường dẫn cụ thể : http://www.abc.org.vn/web/index.php?tabid=1130
e muốn viết thành:
http://www.abc.com/web/index/1130

e có cấu hình như sau :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index/([0-9]*)$ /index.php?tabid=$1130 [L]
</IfModule>

Chay thử vẫn chưa được các a có thể chỉ dùm e không. Thanks

[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 05/03/2009 10:47:32 (+0700) | #2 | 171962
ducmanh
HVA Friend

Joined: 12/09/2004 18:07:25
Messages: 143
Location: Hà Nội
Offline
[Profile] [PM] [WWW] [Yahoo!] [MSN]
Bạn sửa lại đoạn cuối thành:

RewriteRule ^index/([1-9][0-9]*)$ index.php?tabid=$1
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 06/03/2009 04:31:06 (+0700) | #3 | 172024
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Mình đã thử như cấu hình như bạn, nhưng kết quả là vẫn chưa được smilie
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 06/03/2009 09:07:18 (+0700) | #4 | 172059
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
Bạn sửa thêm

RewriteBase /web

và dùng lại Rule của ducmanh xem thế nào?
Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 06/03/2009 23:32:54 (+0700) | #5 | 172125
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Vẫn không được bạn ạ. Hay là tai vì nó là 1 link trong web nên không được hả bạn. Vì đường dẫn gốc của mình là http://www.abc.org/web/index.php sau đó link tới 1 mục khác thì mới có đường dẫn là http://www.abc.org.vn/web/index.php?tabid=1130 . Nếu vậy các bạn có thể giúp mình làm gọn lại cái đường dẫn gốc không . Vì mình thấy nó vẫn hơi dài smilie
[Up] [Print Copy]
  [Question]   Cách viết lại đường dẫn bằng mod_rewrite 07/03/2009 04:51:49 (+0700) | #6 | 172165
centos
Member

[Minus]    0    [Plus]
Joined: 28/03/2008 17:13:12
Messages: 219
Offline
[Profile] [PM]

dg0102 wrote:
Ai có kinh nghiệm về cách viết lại đường dẫn bằng mod_rewrite cho e hỏi .E có đường dẫn cụ thể : http://www.abc.org.vn/web/index.php?tabid=1130
e muốn viết thành:
http://www.abc.com/web/index/1130

e có cấu hình như sau :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index/([0-9]*)$ /index.php?tabid=$1130 [L]
</IfModule>

Chay thử vẫn chưa được các a có thể chỉ dùm e không. Thanks

 


bạn build lại apache với tham số --enable-rewrite. Chúc bạn thành công
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 07/03/2009 06:58:01 (+0700) | #7 | 172192
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Module mod_rewrite.so của mình có mà . Mình nghĩ không phải lý do này
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 07/03/2009 08:10:46 (+0700) | #8 | 172201
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]

dg0102 wrote:
Vẫn không được bạn ạ. Hay là tai vì nó là 1 link trong web nên không được hả bạn. Vì đường dẫn gốc của mình là http://www.abc.org/web/index.php sau đó link tới 1 mục khác thì mới có đường dẫn là http://www.abc.org.vn/web/index.php?tabid=1130 . Nếu vậy các bạn có thể giúp mình làm gọn lại cái đường dẫn gốc không . Vì mình thấy nó vẫn hơi dài smilie 


Bạn hãy chú ý 2 điểm sau để rewrite được link:
- thứ nhất là bạn phải cho website của bạn "sinh ra được link" dạng index.php/1130
- sau đó mới dùng htaccess để rewrite link index.php/1130 thành dạng index.php?tabid=1130

Các thảo luận trong topic này từ đầu tới giờ chỉ làm nhiệm vụ thứ 2 là khi có request tới index.php/1130, nó sẽ chuyển thành request tới index.php?tabid=1130. Bạn muốn thử xem việc làm đó có đúng ko thì phải thử bằng cách gõ đường dẫn index.php/1130 vào ô address, xem nó có chạy ko. Chứ ko phải bằng việc bạn xem link của 1 mục trên website bạn có dạng index.php/1130 hay ko nhé. Việc website bạn sinh ra link dạng như thế nào là vấn đề khác, nó phụ thuộc vào cấu hình và cách code của website.

Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 09/03/2009 21:51:21 (+0700) | #9 | 172488
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Như vậy tức là muốn viết lạ đường dẫn thì phải phụ thuộc vào code. Còn viết bằng rewrite như trên là có tác dụng giúp mình gõ url gọn hơn mà vẫn đến đúng đích phải không bạn. Vậy thì mình hiểu rồi. Cám ơn bạn nhé
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 09/03/2009 22:35:54 (+0700) | #10 | 172496
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Mà cho mình hỏi thêm 2 điểm cần chú ý của bạn điểm thứ nhất mình không được hiểu cho lắm:
-Cho web sinh ra link dang index.php/1130
Giai thich giup minh voi
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 10/03/2009 07:14:16 (+0700) | #11 | 172609
[Avatar]
learn2hack
Elite Member

[Minus]    0    [Plus]
Joined: 29/06/2006 16:32:37
Messages: 825
Offline
[Profile] [PM] [WWW]
VD bạn có 1 câu lệnh sau trong file index.php để sinh ra các link của các mục chính trong website:

showMainCategories();

lệnh này sẽ tự động sinh ra mã HTML dạng sau:

Code:
<ul id="main-categories">
<li><a href="http://.../index.php?tabid=1">Item 1</a></li>
<li><a href="http://.../index.php?tabid=2">Item 2</a></li>
<li><a href="http://.../index.php?tabid=3">Item 3</a></li>
...
</ul>


Vấn đề của bạn là phải sửa lại hàm đó để nó phải sinh ra mã HTML dạng như bạn muốn:

Code:
<ul id="main-categories">
<li><a href="http://.../index.php/1">Item 1</a></li>
<li><a href="http://.../index.php/2">Item 2</a></li>
<li><a href="http://.../index.php/3">Item 3</a></li>
...
</ul>

Blog: http://hontap.blogspot.com
Tải phần mềm miễn phí: http://www.taiphanmem.org
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 10/03/2009 21:31:45 (+0700) | #12 | 172700
dg0102
Member

[Minus]    0    [Plus]
Joined: 17/02/2009 16:18:33
Messages: 12
Offline
[Profile] [PM]
Tức là đúng như bạn nói trong code web phai sinh sẵn ra đường dẫn mình muốn . Sau đó mới dùng mod_rewrite viết lại đường dẫn đã đươc sinh trong code web
[Up] [Print Copy]
  [Question]   Re: Cách viết lại đường dẫn bằng mod_rewrite 19/04/2009 20:56:04 (+0700) | #13 | 177781
[Avatar]
badbigboy1
Elite Member

[Minus]    0    [Plus]
Joined: 12/03/2003 16:59:34
Messages: 48
Offline
[Profile] [PM]
Bạn có thể tham khảo cách http://www.vietseo.net/articles/htaccess/wwwect-301/ hoặc http://www.vietseo.net/webdev/rewrite-url-apache-htacess/. Chúc thành công
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|