5 ví dụ về Rewrite URL dùng htaccess thông dụng
Xin chào các bạn, nhất là những bạn đã đang và sẽ là một webmaster 🙂
Bạn là một WM ắt hẳn phải chú trọng đến việc quảng bá website để thu hút traffic. Có rất nhiều yếu tố để đạt được yêu cầu đó mà trong khuôn khổ bài viết hạn hẹp này Việt Coding không thể nói hết. Việt Coding chỉ nói đến việc “viết lại” (rewrite) đường dẫn web (url) của bạn cho đẹp, cho dễ nhớ, nói chung là thân thiện. Thân thiện với cả visitor và các search engine. Bạn nghĩ sao nếu phải gõ tay hoặc copy dòng địa chỉ này paste vào trình duyệt :
/index.php?option=com_content&view=article&id=25:bai-hc-t-cuc-sng&catid=1:news-tonghop&joscclean=1&comment_id=473#josc473
hay bạn chỉ muốn gõ đơn giản như vầy:
/article/25/bai-hoc-tu-cuoc-song/
Tôi có cần trả lời giùm bạn không nhỉ ? 😀
Bài viết dưới đây sẽ hướng dẫn các bạn sử dụng sức mạnh của tập tin .htaccess, qua đó viết lại đường dẫn website của bạn một cách thân thiện (friendly url).
[msg=note]Hy vọng bạn chưa quên một bài viết khác của Việt Coding cũng nói về .htaccess : Bảo vệ băng thông webblog của bạn bằng htaccess ?
[/msg]
Đây là 5 ví dụ thông dụng nhất:
1. product.php?id=12 —> product-12.html
Đây là một ví dụ cực kỳ cơ bản của rewrite url, thường dùng để che dấu đuôi PHP:
RewriteEngine on
RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1
2. product.php?id=12 —> product/ipod-nano/12.html
Một SEO chuyên nghiệp luôn biết khéo léo hiển thị từ khoá chính trên URL. Như trong ví dụ sau, URL hiển thị tên của sản phẩm chính:
RewriteEngine on
RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2
3. Non www URL —> www URL
Nếu bạn muốn khi visitor gõ vào trình duyệt vietcoding.com thì được chuyển thẳng vào www.vietcoding.com thì cấu hình như sau:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vietcoding\.com$
RewriteRule (.*) http://www.vietcoding.com/$1 [R=301,L]
4) vietcoding.com/user.php?username=xyz —> vietcoding.com/xyz
Nếu website của bạn có một lượng lớn thành viên (như mạng xã hội, diễn đàn), đây là một cách rất hay để rút gọn liên kết cho thành viên dễ nhớ
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
5) Chuyển domain vào cấp thư mục:
Trong quá trình phát triển website, luôn luôn có sự thay đổi (về mã nguồn, cơ sở dữ liệu, cấu trúc site,…). Ví dụ vietcoding.com trước giờ vẫn chạy ở thư mục gốc (root), giả sử vì một lý do nào đó, Việt Coding cần dùng root cho việc khác và muốn chuyển webblog hiện tại vào thư mục /blog/ thì sao ?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vietcoding\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.vietcoding\.com$
RewriteCond %{REQUEST_URI} !^/blog/
RewriteRule (.*) /blog/$1
Thế là xong ! Từ nay mọi truy vấn đến vietcoding.com hoặc www.vietcoding.com đều được redirect vào vietcoding.com/blog
Tất nhiên, URL rewriting rất đa dạng và phong phú, tuỳ sự sáng tạo của từng webmaster mà sẽ cho ra những url độc đáo không đụng hàng, ví dụ như:
http://abc.com/Music/#List_Album2,-1,1
http://abc.com/Products/#IPhone|3GS|32G
[msg=help]Đều rất đặc trưng phải không nào ? Bạn còn chờ gì nữa ?
[/msg]
77 Comments
Tinh · 26/03/2010 at 10:40
Thực ra cái này đã có sẵn trong wordpress permalink và các hosting đã support nên chỉ cần chọn cách hiển thị là nó tự cập nhật. Dù sao, thủ thuật này cũng khá hữu ích cho những ai sử dụng free host hay pai host mà không hỗ trợ tính năng tự động này
.-= Tinh´s last blog ..HostGator Released New Affiliate System! =-.
Việt Coding · 26/03/2010 at 17:38
5 cách trên đây áp dụng chung cho mọi ứng dụng web mà bác ! Chắc tại em không ghi rõ làm bác hiểu nhầm 😀
P/s: Sao cái comment này của bác vào Spam nhở 😮
Giáng Châu · 29/03/2010 at 16:09
Hi bác Việt Cốt! Bài hay quá. Nhưng cái này, em nghĩ hơi “cao xa”. Em thấy một số bài viết của bạn nên theo hướng popular hơn để anh em có thể áp dụng tốt.
Chúc bác vui!
@Bác Tỉnh là chuyên gia spammer mà.
.-= Giáng Châu´s last blog ..9 điều “giết chết” tình yêu =-.
Việt Coding · 31/03/2010 at 13:09
Hi,
Bài viết trên rất đơn giản, ứng dụng không có gì quá khó khăn cả 🙂
dưngin · 12/07/2012 at 15:25
Mình comment bao nhiu cấp thì trang web bị đơ nhỉ ^^
LeHienTinh · 02/04/2010 at 22:01
Em sài wordpress nên chỉ cần dùng permarklink là xong hihi:)
.-= LeHienTinh´s last blog ..Cơ hội sở hữu Thesis 1.7 =-.
sim so dep · 03/04/2010 at 00:59
Khá chuẩn? ngoài ra còn có thêm một số ví dụ về redirect 301 302 các bác tìm hiểu thêm nhé?
.-= sim so dep´s last blog ..Số kép abab………………………….abab số kép =-.
Tran Quang · 03/04/2010 at 22:30
trứoc kia em để link dạng ethongtin.net/index.php/link-bai-viet mà bây giờ chuyển sang dạng ethongtin.net/ten-bai-viet thì có ảnh hưưỏng gì đến google index ko hả anh ?
.-= Tran Quang´s last blog ..Flash Gallery Miễn Phí Hỗ Trợ Tự Động Tạo Thumbnail =-.
Việt Coding · 03/04/2010 at 22:48
Theo Việt Coding, việc chuyển cấu trúc link từ dạng này sang dạng khác phải có một chiến lược 😀
– Lựa chọn cấu trúc link chuẩn nhất, ngắn gọn nhất, thuận tiện cho cả người dùng và cả các search engine.
– Mỗi khi thay đổi phải làm sao để các link đến các link cũ phải được chuyển ngay đến link mới. Vấn đề này Việt Coding có chút kinh nghiệm khi đã chuyển từ bo-blog sang WordPress.
– Đảm bảo các link tại các bài viết phải được cập nhật toàn bộ
– Liên tục kiểm tra link gãy bằng các plugin của WP hoặc Google WebMaster Tools.
Trường hợp của bạn đương nhiên có ảnh hưởng đến Google index chứ. Bạn có 2 cách giải quyết như vầy:
1- Vào Google WMT, xoá hết index cũ và yêu cầu Google re-index thông qua re-submit sitemap.
2- Redirect các link cũ về link mới, dùng .htaccess
Trường hợp chuyển đối cấu trúc link của bạn, Việt Coding giúp bạn với dòng khai báo sau:
RedirectMatch 301 /index.php/(.*)$ /$1/
Bạn copy và chèn vào đầu tập tin .htaccess trong thư mục gốc của webblog (không phân biệt đó là Joomla hay WP hay bất kỳ website nào hết).
Sau đó bạn thử truy cập vào link có dạng cũ xem nó có redirect sang link dạng mới không nhé. Có gì báo lại Việt Coding nhé 🙂
Bệnh tim mạch · 04/04/2010 at 15:42
Chào vietcoding, mình thử sử dụng cách chuyển từ http://www.yeucon.org sang http://www.blog.yeucon.org . Chuyển thì OK nhưng các file ảnh up lên thư mục tại yeucon.org không xuất hiện nữa, có cách nào chuyển mà vẫn giữ file hiện không. Thanks
đây là mã mình chèn .htaccess
# BEGIN WordPress
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yeucon\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.yeucon\.org$
RewriteRule (.*) http://www.blog.yeucon.org/$1 [R=301,L]
# END WordPress
order allow,deny
allow from all
.-= Bệnh tim mạch´s last blog ..Hiểu rõ hơn về thuốc trợ tim digoxin =-.
Việt Coding · 04/04/2010 at 18:05
Đoạn khai báo trên đã nói rõ rồi mà : Chuyển tất cả các truy vấn từ yeucon và http://www.yeucon đến http://www.blog.yeucon. Như vậy khi có một link hình ví dụ là yeucon/img.jpg —> http://www.blog.yeucon/img.jpg. Hình đó có không 🙂 Nếu đã chuyển domain như vậy, bạn nên chuyển toàn bộ data sang blog mới luôn. Sau đó dùng plugin http://wordpress.org/extend/plugins/velvet-blues-update-urls/ để cập nhật toàn bộ url cũ trong database sang url mới.
Bệnh tim mạch · 04/04/2010 at 18:10
Thanks ! Nhưng cái yeucon.org thì dùng WP còn blog.yeucon.org thì dùng blogspot.
.-= Bệnh tim mạch´s last blog ..Hiểu rõ hơn về thuốc trợ tim digoxin =-.
Tran Quang · 04/04/2010 at 18:24
không đựơc rồi bác ơi ! Nó bác rôi 404 – không tìm thấy trên server ! Bác xem lại giúp tớ code nhé !
Tran Quang · 04/04/2010 at 18:26
À ! Cái nữa là ! làm thế nào thêm chữ “.html” cho 1 link bài viết hả bác !
.-= Tran Quang´s last blog ..Flash Gallery Miễn Phí Hỗ Trợ Tự Động Tạo Thumbnail =-.
Dat Tai · 25/04/2010 at 08:42
Chào bạn ,site bạn nhiều thông tin hấp đãn quá
.-= Dat Tai´s last blog ..Tạo Slider giới thiệu bài viết sử dụng jQuery =-.
Điện máy Babylon · 17/03/2011 at 17:30
babylonmart.com/stores/tanphat/
===>>>
babylonmart.com/stores/tanphat/index.php?site=tanphat
Mình muốn rewrite URL từ
babylonmart.com/stores/tanphat/index.php?site=tanphat
thành
babylonmart.com/tanphat/
Thì làm thế nào bạn nhỉ ! Mình mới chỉ Rewire URL thế kia được thôi
Mail cho mình qua acc06122gmail.com cũng được
Việt Coding · 18/03/2011 at 08:04
RewriteEngine on
RewriteRule ^stores/([0-9]+)$ /$1/
Bạn thử đoạn code trên xem sao, vì Việt Coding viết chay nên chưa chắc nó chạy, bạn cứ căn theo đó mà chỉnh sửa cho phù hợp nhé 🙂
Điện máy Babylon · 18/03/2011 at 11:07
cho mình hỏi là nếu trong htaccess mình có 3 tham số mà muốn in ra 2 tham số thôi thì làm thế nào nhỉ
Ví dụ: câu lệnh mình viết
RewriteRule ^stores/tanphat/([^/]+)/([^/]+)-([^/]+).html$ stores/tanphat/index.php?page=$1&alias=$2&id=$3
nhưng nó lại in ra là
babylonmart.com/stores/tanphat/chitietsanpham/canon-powershot-53.html
nhưng lại mất css …
thì làm sao mà nó chuyển đường dẫn được và nhận tham số $2 và $3 nhỉ $1 bỏ qua
babylonmart.com/stores/tanphat/index.php?page=chitietsanpham&alias=canon-powershot&id=53
thành
babylonmart.com/stores/tanphat/canon-powershot-53.html
trong đó 53 là id của sản phẩm .
Việt Coding · 18/03/2011 at 13:54
Mất CSS là do bị ảnh hưởng bởi rewrite url, bạn cần đưa nhóm các tập tin *.js, *.css, *.jpg, *.png,… vào một rewrite khác. Chi tiết bạn tìm thêm trên Google vì cái này lâu rồi mình không xem lại nên không nhớ. Hoặc bạn một số bài tuts cơ bản nhất về lập trình trình về Zend framework, trong đó có đoạn rewrite như mình đã nói. Hồi đó có xem qua nên ZF nên nhớ 🙂
Trường hợp rule của bạn thì thử đoạn code này xem sao:
RewriteRule ^stores/tanphat/([^/]+)-([^/]+).html$ stores/tanphat/index.php?page=chitietsanpham&alias=$1&id=$2
dien may babylon · 21/03/2011 at 12:50
Xin hỏi bạn nếu có 2 code dòng htaccess như này thì làm sao mà htaccess hiểu được nhỉ:( mÌnh làm mãi nhưng htaccess chỉ nhận được 1dong lệnh:
RewriteRule ^stores/([^/]+)/([^/]+)-([^/]+).html$ stores/$1/index.php?page=chitietsanpham&alias=$2&id=$3
RewriteRule ^stores/([^/]+)/([^/]+)-c([^/]+).html$ stores/$1/index.php?page=danhmuc&alias=$2&catid=$3 [L]
Mình muốn khi vào
mart.com/stores/tanphat/index.php?page=danhmuc&alias=may-tinh-xach-tay&catid=45
thì tự chuyển đến
mart.com/stores/tanphat/may-tinh-xach-tay-c45.html
và
mart.com/stores/tanphat/index.php?page=chitietsanpham&productid=11&alias=iphone-3gs-16gb-apple
thì tự chuyển đến
mart.com/stores/tanphat/iphone-3gs-16gb-apple-11.html
Mình làm mãi mà không được!! Bạn có thể giúp mình
Việt Coding · 21/03/2011 at 13:25
Hai dòng khai báo đó là như nhau thì .htaccess chỉ hiểu được một thôi bác !
P/s: Lần sau bác đừng chèn link vào bài viết nhé !
dien may babylon · 21/03/2011 at 13:54
Mình k để ý sorry
RewriteRule ^stores/([^/]+)/([^/]+)-([^/]+).html$ stores/$1/index.php?page=chitietsanpham&alias=$2&id=$3
RewriteRule ^stores/([^/]+)/([^/]+)-c([^/]+).html$ stores/$1/index.php?page=danhmuc&alias=$2&catid=$3 [L]
Nhưng ở đây nó phân biệt qua page=… mà nhỉ
Việt Coding · 21/03/2011 at 17:19
Ví dụ địa chỉ này của bác :
mart.com/stores/tanphat/iphone-3gs-16gb-apple-11.html
đâu có cái page nào đâu 😀ngt · 09/02/2012 at 15:40
bài viết cũng hữu ích cho những người chưa biết mà!
lenevog560 · 28/08/2012 at 15:42
Bài viết rất hay,thanks nhiều
chongtham · 05/04/2011 at 10:18
mình có url thế này: http://mydomain/?dichvu=/info/79/dich-vu-chong-tham.html
giờ mình muốn chuyển thành: http://mydomain/dichvu/info/79/dich-vu-chong-tham.html
và mình đã làm thế này
RewriteEngine on
RewriteRule /dichvu(.*) ?dichvu=$1
và chẳng có gì thay đổi hết. giúp mình với.
Thanks!
Việt Coding · 07/04/2011 at 17:02
Bạn thử đoạn code này xem:
RewriteRule /dichvu/(.*) index.php?dichvu=$1
chongtham · 08/04/2011 at 07:32
không có gì thay đổi hết, chán thật, nó vẫn ra nguyên si thế này
http: //mydomain/?dichvu=/info/79/dich-vu-chong-tham.html
mình đã thử với đoạn code: RewriteRule /dichvu/(.*) index.php?dichvu=$1
và với đoạn code: RewriteRule /dichvu/(.*) mydomain/?dichvu=$1
cũng không được
Việt Coding · 08/04/2011 at 16:41
Việt Coding thấy trang web của bạn viết bằng ASP.NET, bạn áp dụng vào cho trang web này hay web khác ?
chongtham · 08/04/2011 at 16:54
không, trang PHP chứ. ASP.NET ai lại hỏi .htaccess,
Cảm ơn bạn phản hồi.
mình thử nhập link: http: //mydomain/dichvu/info/79/dich-vu-chong-tham.html
thì vẫn chạy nhưng vô bình thường thì nó ko chuyển tới link này.
Việt Coding · 08/04/2011 at 17:03
Việt Coding chưa hiểu “vô bình thường” là thế nào vậy bác ?
chongtham · 08/04/2011 at 17:05
có nghĩa là nhập tên domain vô, còn ko bình thường là mình tự chỉnh lại cái URL thế này http: //mydomain/dichvu/info/79/dich-vu-chong-tham.html
Việt Coding · 08/04/2011 at 18:33
Vậy khi bạn vào mydomain/dichvu/info/79/dich-vu-chong-tham.html thì nó có đến trang đúng không ?
chongtham · 09/04/2011 at 07:55
đúng rồi. chỉ có điểu là css và image chưa được thôi, nhưng cái đó nếu rewrite lại được url thì chỉnh tiếp.
thiet ke website · 11/07/2011 at 18:09
Xin hỏi là mình muốn dùng htaccess redirect đường link không có html thành có html thì làm thế nào bạn nhỉ:-?
ví dụ:
domain.com/duong-dan-ngau-nhien
==>>
domain.com/duong-dan-ngau-nhien.html
Tất cả các đường dẫn không có .html đều tự redirect đến có .html
THánk nhiều
Việt Coding · 13/07/2011 at 16:08
Việt Coding thấy bạn đang dùng WP mà. Cái này WP có hỗ trợ sẵn, bạn chỉnh trong phần Permalink ấy.
thiet ke website chuyen nghiep · 15/07/2011 at 00:04
Nhưng nếu dùng lệnh đó thì do là trước mình đang để file cấu hình đường dẫn là k có .html mà giờ không muốn mất link cũ đi.
tức là chỉ bài viết thì có .html thôi:D
mình muốn dùng htaccess để không để mất các link cũ ảnh hưởng đến SEO nữa 😛
Nguyễn Thắng · 12/07/2011 at 09:56
Cho hỏi tôi có file .htaccess:
RewriteEngine on
RewriteRule ^loaisp-([0-9]+).html$ loaisp.php?idLoai=$1
RewriteRule ^chi/([a-zA-Z0-9_-]+)/([0-9]+).html$ chitietsp.php?idSP=$2
thì cái hình ảnh , flash trên website đều không thấy nữa
còn khi tôi sửa file .htaccess:
RewriteEngine on
RewriteRule ^loaisp-([0-9]+).html$ loaisp.php?idLoai=$1
RewriteRule ^chi-([a-zA-Z0-9_-]+)-([0-9]+).html$ chitietsp.php?idSP=$2
thì mới thấy được hình ảnh trên website. Tôi nghĩ khi tôi để dấu ‘/’ thì đường dẩn trên web không hiểu. Bạn có thể giúp tôi
Việt Coding · 13/07/2011 at 16:14
Vì Việt Coding không nắm được cấu trúc web của bạn nên không dám phán bừa. Bạn thử thêm dòng sau vào file .htaccess sau dòng RewriteEngine on và trước các rule khác:
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$
Để chính xác hơn, bạn thử kiếm trên google với từ khoá sau: htaccess prevent missing image javascript stylesheet rồi rút tỉa cho mình cách tốt nhất.
Thân !
luckytour · 04/08/2011 at 01:01
Chào bạn Việt. Mình hiện đang là quản trị web của 1 cty du lịch. Sếp mình có yêu cầu làm lại URL thân thiện cho website. Bạn có thể hướng dẫn mình được không vậy?
Mình xin lỗi nếu mình paste link vào đây ( nếu nó hiển thị)
Cụ thể mình muốn rewrite url cho Category và Cho Phần Bài Viết sau:
http_://luckytour.vn/index.php?mod=tour&cat=DulichTrungQuoc
==> thành http_://luckytour.vn/DulichTrungQuoc
http_://luckytour.vn/index.php?mod=tour&cat=DulichTrungQuoc&tour_id=335_Du_lich_trung_quoc_noi_mong_6_ngay
===> Thành http_://luckytour.vn/DulichTrungQuoc/Du_lich_trung_quoc_noi_mong_6_ngay_335
(Lưu ý ở phần rewrite cho phần bài viết mình muốn chuyển số 335 về phía cuối của link)
Mình rất mong nhận được sự giúp đỡ của bạn !!
Trân trọng cám ơn bạn thật nhiều !
luckytour · 04/08/2011 at 01:02
Mình không giỏi về code lắm nên mong bạn hướng dẫn chi tiết dùm mình với nhé..
Cám ơn bạn !!
Việt Coding · 06/08/2011 at 11:20
Chào bạn,
Trong url 1 của bạn, không thể rewrite theo url bạn đưa được vì trong url thật còn một tham số truyền vào nữa là mod. Do đó bạn có thể rewrite như thế này: /tour/DulichTrungQuoc
RewriteRule /tour/([a-zA-Z0-9-]+) index.php?mod=tour&cat=$1
Tương tự cho trường hợp thứ 2:
RewriteRule /tour/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)\_([0-9]+) index.php?mod=tour&cat=$1&tour_id=$3
Bạn lưu ý rằng 2 rule trên chỉ là lý thuyết, thực tế áp dụng sẽ còn rất nhiều trường hợp rắc rối xảy ra, bạn nên cân nhắc.
Lưu ý nữa là việc url dạng gạch dưới day_la_url_gach_duoi đã ko còn được dùng nữa vì nó không SEO tốt hơn dạng gạch giữa day-la-url-gach-giua. Cả 2 rule trên Việt Coding viết theo dạng gạch giữa nhé.
Mặt khác theo Việt Coding thấy bạn đang dùng Joomla, nếu nhớ không nhầm thì J cũng có chức năng rewrite url sao bạn không dùng nó ?
P/s: Việt Coding ko phải tên Việt bạn nhé !
Thân,
luckytour · 06/08/2011 at 12:08
Cám ơn bạn rất nhiều… mình đã thử sử dụng tools trong quản trị và cũng được URL khá ổn: domain/tour/dulichquocte/dulichhanquoc/
Tuy nhiên mình muốn hỏi thêm bạn 1 chút là sau khi sử dụng Tools mà mình tiếp tục rewrite theo câu lệnh của bạn thì nó có được như ý mình không?
nghĩa là bỏ được cái dulichquocte ở đằng trước đi ấy
domain/tour/dulichhanquoc
Cám ơn bạn đã quan tâm tới bài comment của mình
Việt Coding · 06/08/2011 at 16:50
Việc sử dụng rewrite phải áp dụng đồng bộ trong cả một ứng dụng web chứ không phải cứ chèn vô là được. Do đó nếu bạn áp dụng các rule khác thì chỉ có tính tạm thời và không phải là cách tối ưu.
luckytour · 06/08/2011 at 12:35
Híc híc… mình chỉ có thể sử dụng Tools có sẵn để rewrite… giờ nó mặc định là domain/tour/dulichquocte/category/bai_viet
Mình muốn đổi cái dấu gạch dưới thì phải làm như nào hả bạn??
Việt Coding · 06/08/2011 at 16:51
Bạn xem thêm trong cấu hình của Joomla vì lâu rồi Việt Coding không sử dụng nên không chắc là có tuỳ chọn chỉnh sửa phần đó hay không.
WebMaster · 05/08/2011 at 18:44
Bạn nên trích nguồn cho bài viết.
Chương · 30/08/2011 at 10:14
VIET CODING ơi giúp mình với, mình viết lại URL dc rùi nhưng nó không tự động chuyển qua URL mình mới viết, khi click vào nó vẫn là đường dẫn củ, hic hic
Việt Coding · 30/08/2011 at 22:59
Bạn nói rõ hơn đi, khi click là click vào link nào ?
Chương · 30/08/2011 at 23:16
thì có nghĩa là mình viết lại đường dẫn rồi, ví dụ mình viết phần Sản phẩm theo danh mục là: _/6-thoi-trang-dam-cong-so
khi gõ đường link đó nó vẫn chạy, nhưng khi mình click vào mục Đầm Công Sở trên web mình thì nó vẫn là _/sptheodm.php?idDM=6 chứ k phải là đường link mình mới viết lại, hic
cấu trúc .htaccess của mình nè:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^Pattern Substitution
RewriteEngine On
RewriteRule ^tin-thoi-trang$ /tinthoitrang.php [L]
RewriteEngine On
RewriteRule ^thoi-trang-nu$ /sanpham.php [L]
RewriteEngine on
RewriteRule ^([0-9]*)-thoi-trang-(.*) /sptheodm.php?idDM=$1
RewriteEngine on
RewriteRule ^([0-9]*)-(.*).html chitietsp.php?idSP=$1
bạn coi giúp mình với, cảm ơn nhiều !!!
Việt Coding · 30/08/2011 at 23:32
Rewirte_url không tác động vào cơ sở dữ liệu, CSDL của bạn xuất ra link dạng idDM=6 thì trên web hiển thị nội dung đó là đúng rồi chứ ! Bạn cần hiệu chỉnh code của web để nó hiển thị link thành 6-thoi-trang… mới đúng chứ. Rewrite_url ko đóng vai trò gì trong vấn đề của bạn cả. Có lẽ bạn vẫn còn hiểu mơ hồ về rewrite_url lắm.
Chương · 30/08/2011 at 23:36
đúng rùi bạn, mình cũng mơ hồ mấy cái này lắm, chắc phải từ từ tìm hiểu thêm thôi, hic, cảm ơn bạn nhiều nhé !!!!
Chương · 30/08/2011 at 10:18
với lại mình muốn viết
_/sptheodm.php?idDM=6
thành
_/thoi-trang-dam-cong-so
thì làm sao, tại mình viết sao cũng có cái ID trên đó nó mới chịu chạy, cảm ơn nhiều !!!!Việt Coding · 30/08/2011 at 23:01
Để viết URL được như nói thì phải căn cứ vào cơ sở dữ liệu mới viết được. Ví dụ trong CSDL có field id là 6 và field ví dụ như slug là thoi-trang-cong-so thì mới viết được. Rewrite-URL không phải là cây đũa thần gõ vào đâu là được URL đẹp đâu, phải có nhiều yếu tố lắm.
Tap Lam Web · 18/10/2011 at 20:02
Giúp mình với,
Mình chạy server easyPHP trên localhost và đã bật rewrite module.
Mình muốn chuyển đường dẫn http://localhost/kar/view/search.php?mode=123&title=hello thành http://localhost/kar/view/123/hello.html nên mình đã chỉnh file .htaccess như sau:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /View
RewriteRule ^view/(.*)/(.*).html view/search.php?mode=$1&title=2
Nhưng khi truy cập địa chỉ: http://localhost/kar/view/123/hello.html thì nó lại báo là “Object not found”
Cám ơn các bạn
Hoang · 19/10/2011 at 17:14
Cho mình hỏi tí nha các bác.
Mình có 1 cái URL như thế này:
http://domain.com/timkiem/?k=domain
Mình muốn khi chạy URL này trên trình duyệt thì nó sẽ thực hiện file search.php?k=domain (với domain là lấy từ URL trên)
Mình đã Rewrite URL như sau nhưng nó ko chạy
RewriteRule ^timkiem/?k=(.*)$ search.php?k=$1 [NC,L]
Các bác nào giúp mình với
Phan Quoc thanh · 28/10/2011 at 09:39
Cho mình hỏi xí..
Giờ mình có url thế này
http://www.abc.com/app/webroot/faq/
mình muốn chuyển thành :
http://www.abc.com/faq/
thì phải làm sao bạn…cám ơn bạn nhìu
thanthan · 05/12/2011 at 17:35
Chào bạn! Mình muốn rename cái link
http://localhost/saoviet/product/product_list.php?category_id=18
để mất hết mấy cái biến đó bạn. Theo bạn thì làm cách nào là tối ưu nhất zậy bạn, Mình không rành lắm về SEO URL. Mong bạn giải đáp cho mình tí.
Tong Vuu · 12/12/2011 at 19:53
Việt Coding ở làm ơn giúp mình với. Mình cài web server bằng EASYPHP chạy trên window. Mình viết url rewrite như file dưới. Trên localhost thì chạy ngon lành nhưng quăng lên host của PA thì nó lại báo là không tìm thấy URL.
Code:
RewriteEngine on
RewriteRule ^([a-zA-Z]+)/([a-zA-Z-]+)/([0-9]*)-*([a-zA-Z0-9-_\ ]*)$ index.php?arg1=$1&arg2=$2&arg3=$3&arg4=$4&level=2
RewriteRule ^([a-zA-Z]+)/([a-zA-Z-]*)$ index.php?level=1&arg1=$1&arg2=$2
RewriteRule ^([a-zA-Z]+)/([a-zA-Z-]+)/$ index.php?level=2&arg1=$1&arg2=$2
RewriteRule ^([a-zA-Z]+)$ index.php?level=0&arg1=$1
RewriteRule ^([a-zA-Z]+)/$ index.php?level=0&arg1=$1
RewriteRule ^([a-zA-Z]*)$ index.php?level=0&arg1=$1
Host của mình: http://tuonglaicentre.org/tuonglai/
Mong bạn xem giúp mình coi mấy cái rewrite trên có sao không ?
Thông tin: http://www.tuonglaicentre.org/tuonglai/info.php
Cám ơn bạn
Việt Coding · 13/12/2011 at 08:17
Bạn đang dùng host chạy trên hệ điều hành Windows.
Tong Vuu · 13/12/2011 at 21:20
Ừm, đúng rồi.
Nhưng mình hỏi thằng admin của PA rùi, nó nói host có hỗ trợ rewrite và chỉ cần viết đúng file .htaccess thì được. File .htaccess đó mình cũng chạy được trên localhost rồi (server EASYPHP ) nhưng up lên host đó thì không chạy được.
Ý của mình là tất cả request có dạng đó điều chuyển về index.php hết. Bạn xem dùm mình coi file .htaccess đó có đúng không nhe.
Chân thành cảm ơn
Việt Coding · 13/12/2011 at 21:33
Bạn đã chạy được trên localhost thành công ===> rule của bạn đã đúng
Up lên host không chạy được ===> Lỗi do host ===> contact support.
Tong Vuu · 13/12/2011 at 21:40
Hjx, vậy là Rule đúng à. Bạn thấy nó đúng hả ? Hay là dựa vào kết quả mình nói ? Chắc thử up lên host khác quá. Cám ơn bạn nhiều
Tong Vuu · 22/12/2011 at 19:18
Xin chào vietcoding,
Mình đã liên hệ với supporter của host và họ đã cái cái rewrite module lại rồi.
Bây giờ gặp tình trạng là truy cập được đến mức số 2 thôi chứ không truy cập được mức 3
Ví dụ, trên localhost mình có thể truy cập link sau:
http://localhost/tuonglai/gallery/view/0-Hinh-anh
Trong khi trên host chỉ truy cập được đến
http://tuonglaicentre.org/gallery/view/
Nếu mình đánh vào:
http://tuonglaicentre.org/gallery/view/0-Hinh-anh
thì lại bảo là lỗi không tìm thấy path.
Bạn chỉ dùm mình giải quyết sao nhé.
Thanks nhiều
Việt Coding · 22/12/2011 at 21:34
Bạn nên chuyển hẳn sang hosting Linux để sử dụng ổn định hơn. Nếu còn tiếp tục xài Apache trên Windows bạn sẽ còn gặp những lỗi như vậy nhiều. Mất thời gian không đáng.
Tong Vuu · 23/12/2011 at 23:52
OK. Cám ơn bạn.
Mình đã yêu cầu chuyển sang host Linux rùi.
Merry X’Mas !
Khoa Nguyen · 25/04/2012 at 10:49
RewriteEngine On
RewriteCond %{HTTP_HOST} ^vietcoding.com$
RewriteRule (.*) http://www.vietcoding.com/$1 [R=301,L]
Mình thêm dòng
RewriteCond %{HTTP_HOST} ^www.vietcoding.com$
được không?
Mình muốn chuyển hướng http://www.abc.com và abc.com ==> hướng vào một link khác trên web.
Phương Trần · 08/05/2012 at 12:23
Bạn giúp mình rule cho link này với
/menu/sanpham/index.php?id=M01
mình mới tìm hiểu nên chưa quen. cám ơn nhiều nhé
TOÀN · 16/05/2012 at 16:30
Mình muốn viết RewriteRule giống như zing thì sao nhĩ, giải đáp giúp mình với
http://mp3.zing.vn/tim-kiem/bai-hat.html?q=yeu+lai+tu+dau
nếu viết vầy thì đơn giản rồi
http://mp3.zing.vn/tim-kiem/bai-hat/yeu+lai+tu+dau.html
hoangmaster · 22/05/2012 at 21:00
Bạn cho mình hỏi phần chuyển web vào thư mục con đó.Mình code xong ở root nó chạy ok rồi nhưng đến khi chuyển vòa thư mục con nó lại bị lỗi đường dẫn chỉ chạy đc template của index.mình cũng đã thử cấu hình htaccess như phần 5 của bạn mà vẫn ko đc,mong bạn giúp đỡ.
cấu hình htaccess của tớ là:
RewriteEngine On
php_flag zlib.output_compression on
RewriteCond %{HTTP_HOST} ^localhost$
RewriteCond %{REQUEST_URI} !^/product/
RewriteRule (.*) /product/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
Mong bạn phản hồi sớm cho mình.thanks!
Ricky1990 · 17/06/2012 at 16:11
Em xin chào bác VietCoding,
Em có 1 website joomla sử dụng module hiển thị tin tức ra ngoài trang chủ (đã tối ưu hóa url tự động trong trang quản trị), link dẫn đến các bài viết có dạng là :
domain.com/component/content/article/46-tin-tuc/tieu-de-bai-viet
Nay em muốn dùng htaccess để chuyển link thành
domain.com/tin-tuc/tieu-de-bai-viet
Mong bác giúp em đoạn code trong htaccess với !
Thành · 21/06/2012 at 16:16
Có cách nào khác không mọi người? mình mua host windows (bây giờ không thể chuyển sang linux) muốn cài joomla mà không được. mình up file cài đặt của joomla vào httpdocs. và mình truy cập vào địa chỉ: mydomain.com/joomla/installation nhưng hiện thông báo:
“404 – File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.”
mọi người giúp với
trường tiểu học · 27/08/2012 at 23:11
sao minh rewrite mà vẩn chưa đươc buồn quá
lenevog560 · 28/08/2012 at 15:53
Mình có vấn đề như thế này mong bạn chỉ giúp:
Mình có một url http://abc.com/vn/………… mình muốn chuyển sang link http;//abc.com/vi/……..
thì mình cấu hình htaccess như thế nào?
Thanks,
Thanh Hải · 23/10/2012 at 20:00
Sao tôi làm mãi mà không được
– Đã sửa httpd trong apache/conf
-Nội dung .htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index-([0-9]+).html$ index.php?id=$1
-Đặt .htaccess và index.php trong htdocs của xampp
Tôi đã làm sai hay thiếu bước nào vậy ?
Hung · 30/10/2012 at 09:02
Em có một đươnf dẫn như thế này :
http://localhost:82/wordpress/story.php?page=VuHung\Z\Zekkyou-Gakkyuu.xml
sau khi em dùng htaccess chuyển nó như thế này
http://localhost:82/wordpress/VuHung/Z/Zanbara.xml.html#
Bằng đoạn code sau :
# BEGIN WordPress
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\.html story.php?page=$1
# END WordPress
Nhưng những file ảnh của em không tài nào hiển thị lên được nữa.Và cho em hỏi thêm là làm cách nào để trình duyệt nó tự động chuyển sang link http://localhost:82/wordpress/VuHung/Z/Zanbara.xml.html# cho em.
kakalot · 03/11/2012 at 12:25
Mình cần chuyển sub.domainname.com/rewrite-string/abc/def/ thành domainname.com/index.php/dir/controller/?var1=abc&var2=def thì làm thế nào hả bạn?
Mình đã thử câu lệnh RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+).html$ product.php?id=$2 nhưng không được
Comments are closed.