10/10/2018, 00:14

Ai biết cách sinh link theo kiểu http://vnexpress.net/GL/Kinh-doanh/2008/06/3BA03DA4/

Hi all
Mình đang muốn tìm hiểu cách sinh đường link ẩn file gốc kiểu http://vnexpress.net/GL/Kinh-doanh/2008/06/3BA03DA4/
chứ không phải http://domainname/filename.aspx?id=***
Ai biết xin share dùm
thank alot
herofit viết 02:24 ngày 10/10/2018
bạn xem mod rewrite và sinh các luật cho nó
12gio viết 02:28 ngày 10/10/2018
RewriteEngine on
RewriteRule ^news/([^/]*)/([^/]*)/([^/]*)\.html$ /news/chitiet.php?ID=$1&Data=$2&titles=$3 [L]
Khai báo luật như ví dụ này.
ví dụ: http://www.vncollect.com/home/news/9...eu_ve_seo.html
s.code viết 02:20 ngày 10/10/2018
Nếu sử dụng nhiều mod_rewrite thì rất bất tiện. Tại vì chỉ chạy trên webserver apache. => độ tương thích không cao.

Thật ra:

http://vnexpress.net/GL/Kinh-doanh/2008/06/3BA03DA4/

Là dạng:

http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/

Nó chỉ dùng 1 câu mod_rewrite duy nhất để remove cái index.php thôi. Nếu mà phải chuyển sang server non-apache thì cũng ko sao.

Không dùng get dữ liệu bằng biến query nữa. Phải tự phân tích cái chuỗi request.
SVPro viết 02:27 ngày 10/10/2018
Vậy để làm các link http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/ dạng này thì như thế nào?
Ý tui là cái link như vậy thì làm sao WebServer hiểu và làm theo?
Ví dụ http://vnexpress.net/index.php?defau...nh&id=3BA03DA4 thì trình duyệt sẽ hiểu các biến 3BA03DA4, Kinh-doanh là các $_GET còn link http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/ thì=...........?????
Mong anh em chỉ giúp..........
herofit viết 02:22 ngày 10/10/2018
Được gửi bởi SVPro
Vậy để làm các link http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/ dạng này thì như thế nào?
Ý tui là cái link như vậy thì làm sao WebServer hiểu và làm theo?
Ví dụ http://vnexpress.net/index.php?defau...nh&id=3BA03DA4 thì trình duyệt sẽ hiểu các biến 3BA03DA4, Kinh-doanh là các $_GET còn link http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/ thì=...........?????
Mong anh em chỉ giúp..........
link thây đổi thôi thực chất chuỗi queryString không đổi vẫn làm lấy bình thường bằng $_GET
3do viết 02:16 ngày 10/10/2018
Được gửi bởi s.code
Nếu sử dụng nhiều mod_rewrite thì rất bất tiện. Tại vì chỉ chạy trên webserver apache. => độ tương thích không cao.

Thật ra:

http://vnexpress.net/GL/Kinh-doanh/2008/06/3BA03DA4/

Là dạng:

http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/

Nó chỉ dùng 1 câu mod_rewrite duy nhất để remove cái index.php thôi. Nếu mà phải chuyển sang server non-apache thì cũng ko sao.

Không dùng get dữ liệu bằng biến query nữa. Phải tự phân tích cái chuỗi request.
server của nó chạy IIS, ASP, đào đâu ra index.php?
SVPro viết 02:28 ngày 10/10/2018
Được gửi bởi herofit
link thây đổi thôi thực chất chuỗi queryString không đổi vẫn làm lấy bình thường bằng $_GET
Em không hiểu ý bác, ý bác là nếu là link dạng
http://vnexpress.net/index.php/GL/Ki...8/06/3BA03DA4/ thì ta sẽ lấy nội dung từ DB ra à, nhưng lấy bằng cách nào? Chã nhé dùng if hoặc switch, nếu link dạng http://link/3BA03DA4/ thì lấy bài viết 1 ra nếu link dạng http://link/3BA03DA5/ thì lấy bài 2 ra sao . Em vẫn chưa hiểu cơ chế lấy những cái đuôi sau index....
Nếu dùng http://link/index.php?id=*** thì khi $_GET['id'] bằng bao nhiêu ta có thể lấy bài viết tương ứng ra được...
herofit viết 02:18 ngày 10/10/2018
ví dụ http://herofit.net/index.php?id=1
chuyển thành http://herofit.net/index.php/id/1

thì echo $_GET['id'] kết quả vẫn là 1
s.code viết 02:28 ngày 10/10/2018
Được gửi bởi 3do
server của nó chạy IIS, ASP, đào đâu ra index.php?
Không thấy chữ "dạng" à.

Ko phải index.php thì có thể là index.aspx hoặc default.asp

Mà IIS thì mấy khi có mod_rewrite.


Liệu có cần 1 demo để chấm dứt topic này không ấy nhỉ )

[=========> Bổ sung bài viết <=========]

Được gửi bởi herofit
ví dụ http://herofit.net/index.php?id=1
chuyển thành http://herofit.net/index.php/id/1

thì echo $_GET['id'] kết quả vẫn là 1
Cái này thì hên xui à nghen. Tỷ lệ lỗi rất cao.

Tốt nhất vẫn là tự mình parse cái chuỗi request thôi.
Bài liên quan
0