Bang hộiTiền mặt: 0 Xu Trò chơiHộp quà giáng sinhThứ Hai, 15:12:15 - 25/11/2024
Mã nguồn forum vBB

Các điều hành viên: Admin, Mod, SMod

[VBB] Rewrite Friendly Url Vbulletin on Nginx

[VBB] Rewrite Friendly Url Vbulletin on Nginx

#1 » Gửi bài gửi bởi nghiammo1992 » 20/11/2015 12:39 » @426081

Rewrite Friendly Url Vbulletin on Nginx

[VBB] Rewrite Friendly Url Vbulletin on Nginx

Rewrite URL là gì chắc không cần phải giải thích :D
Nếu sử dụng apache thì mọi viêc rất đơn giản chỉ cần dùng .htaccess là xong. Nhưng đối với nginx thì sao ???
Nginx không chạy được .htaccess mà nó sử dụng file vhost (/etc/nginx/conf.d/ketnoi123.conf)
Sau nhiều ngày lọ mọ cuối cùng mình cũng làm thành công giờ share lại cho anh em.
Chú ý: Cái này là kinh nghiệm của mình không hề copy bất cứ bài viết nào nên ai biết rồi thừ đừng quăng gạch nhé :D
Ở đây mình sẽ hướng dẫn mọi người rewrite về dạng như này

Mã: Chọn tất cả
http://ketnoi123.com/threads/4694-download-truyen-tranh-sieu-dau-bep-ti-hon-mister-ajikko-tron-bo-html


Đẹp và tối ưu seo :D

Mình làm trên VBB 4.2.2 nhé.

Đầu tiên các bạn truy cập vào admincp => Options => Settings => Friendly URLs

Ở phần URL Type chọn Mod Rewrite Friendly URLs

[VBB] Rewrite Friendly Url Vbulletin on Nginx

Tiếp theo mở file /includes/class_friendly_url.php ra

Tìm:
Mã: Chọn tất cả
$fragment = preg_replace(self::CLEAN_URL_REGEX, '-', strip_tags($fragment));
$fragment = trim(preg_replace('#-+#', '-', $fragment), '-');


Thay thế bằng:
Mã: Chọn tất cả
$fragment = preg_replace(self::CLEAN_URL_REGEX, '-', strip_tags($fragment));
$fragment = trim(preg_replace('#-+#', '-', $fragment), '-');

$translite_simbols = array ( 
'#(à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ)#',
'#(è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ)#',
'#(ì|í|ị|ỉ|ĩ)#',
'#(ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ)#',
'#(ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ)#',
'#(ỳ|ý|ỵ|ỷ|ỹ)#',
'#(đ)#',
'#(À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ)#',
'#(È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ)#',
'#(Ì|Í|Ị|Ỉ|Ĩ)#',
'#(Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ)#',
'#(Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ)#',
'#(Ỳ|Ý|Ỵ|Ỷ|Ỹ)#',
'#(Đ)#',
'#(U)#',
'#(K)#',
'#(H)#',
'#(V)#',
'#(C)#',
'#(I)#',
'#(L)#',
'#(M)#',
'#(D)#',
'#(Y)#',
'#(T)#',
'#(B)#',
'#(N)#',
'#(G)#',
'#(X)#',
'#(O)#',
'#(S)#',
'#(A)#',
'#(F)#',
'#(E)#',
'#(Q)#',
'#(P)#',
'#(R)#',
'#(J)#',
'#(W)#',
'#(Z)#',
"/[^a-zA-Z0-9\-\_]/",
) ; 
$replace = array ( 
'a',
'e',
'i',
'o',
'u',
'y',
'd',
'a',
'e',
'i',
'o',
'u',
'y',
'd',
'u',
'k',
'h',
'v',
'c',
'i',
'l',
'm',
'd',
'y',
't',
'b',
'n',
'g',
'x',
'o',
's',
'a',
'f',
'e',
'q',
'p',
'r',
'j',   
'w',
'z', 
'-',
) ; 
$fragment = $fragment.".html"; //nếu sử dụng cms thì các bạn xóa dòng này đi
$fragment = preg_replace($translite_simbols, $replace, $fragment); 
$fragment = preg_replace('/(-)+/', '-', $fragment); 
$fragment = str_replace('quot-','',$fragment);
$fragment = str_replace('amp-','',$fragment);


Rồi giờ đến cấu hình file conf

Các bạn mở file conf của site lên (/etc/nginx/conf.d/ketnoi123.conf)

Tìm:
Mã: Chọn tất cả
root /home/ketnoi123.com/public_html;
index index.php index.html index.htm;


Thêm dòng bên dưới:
Mã: Chọn tất cả
if (-f $request_filename){
    set $rule_0 1;
}
if ($request_filename ~ "-l"){
    set $rule_0 1;
}
if (-d $request_filename){
    set $rule_0 1;
}
if ($rule_0 = "1"){
#ignored: "-" thing used or unknown variable in regex/rew
}
    rewrite ^/threads/.* /showthread.php;
    rewrite ^/forums/.* /forumdisplay.php;
    rewrite ^/members/.* /member.php;


Vậy là xong, restart nginx và tận hưởng thành quả với URL được rewrite đẹp lung linh nào :D
Mã: Chọn tất cả
service nginx restart
Sửa lần cuối: nghiammo1992 21/11/2015 02:47
nghiammo1992 ✅
Hình đại diện của thành viên
Rank: ☀️2/30☀️
Cấp độ:
Tu luyện:
Like:
Online:
Bang hội: Tiếu Ngạo
Xếp hạng Bang hội: ⚡5/46⚡
Level:
Chủ đề đã tạo: 🩸4141/4141🩸
Tiền mặt:
Ngân hàng:
Nhóm:
Danh hiệu: ⚝⚝⚝Truyền Thuyết⚝⚝⚝
Giới tính:
Ngày tham gia:
Đến từ:
Thiết bị:
Số điện thoại:
(Cốc Cốc 52.2.90)


Quay về vBB

 


  • Chủ đề tương tự
    Trả lời
    Xem
    Bài viết mới nhất