[VBB] Rewrite Friendly Url Vbulletin on Nginx
Rewrite Friendly Url Vbulletin on Nginx
http://i.imgur.com/OqhOSgm.jpg
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ã:
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
http://i.imgur.com/pzlmDEP.png
Tiếp theo mở file /includes/class_friendly_url.php ra
Tìm:
Mã:
$fragment = preg_replace(self::CLEAN_URL_REGEX, '-', strip_tags($fragment));
$fragment = trim(preg_replace('#-+#', '-', $fragment), '-');
Thay thế bằng:
Mã:
$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ã:
root /home/ketnoi123.com/public_html;
index index.php index.html index.htm;
Thêm dòng bên dưới:
Mã:
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ã:
service nginx restart