10/10/2018, 10:25
Đường dẫn ảo trong PHP?
Chào các bác, em có vài thắc mắc về đường dẫn ảo (mod_rewrite) trong PHP nhờ các bác giải đáp:
File .htaccess
Các bác có thể giải thích cặn kẽ 5 dòng lệnh trên giúp em được không ạ? Ví dụ -d -s -[L] %{REQUEST_FILENAME} [OR].......
Khi test thử thì đường dẫn ảo sẽ gọi rewrite.php. Vậy trong PHP mình sẽ viết như thế nào nếu muốn lấy tiêu đề bài viết làm đường dẫn ảo?
Ví dụ: em có URL thế này http://site.com/index.php?id=1 => nó sẽ truy vấn bài 1 trong CSDL, trong bài 1 này có trường tiêu đề, giả sử nó là "bai1". Em muốn biến url http://site.com/index.php?id=1 thành http://site.com/bai1.html(đường dẫn ảo) thì trong rewrite.php mình sẽ viết như thế nào?
Em đọc bên sân chơi tuổi trẻ thì file .htaccess lại như thế này
Các bác giải thích hộ cách làm này và cách làm với .htaccess ở trên!
Nếu cách trình bày của em quá lủng củng các bác không hiểu thì nói tóm lại thế này: em muốn tạo 1 đường dẫn ảo http://site.com/[tieu-de-bai-viet].html để thay cho đường dẫn thực http://site.com/index.php?id=[0-9]* thì mình sẽ khai báo trong file .htaccess như thế nào (và cả rewrite.php)
Note:
[tieu-de-bai-viet]: là tiêu đề của bài viết có id=[0-9]* được truy vấn trong CSDL.
Cám ơn các bác $______$
File .htaccess
Code:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} -s RewriteRule ^.*$ - [L] RewriteRule ^(.*)$ rewrite.php [L]
Khi test thử thì đường dẫn ảo sẽ gọi rewrite.php. Vậy trong PHP mình sẽ viết như thế nào nếu muốn lấy tiêu đề bài viết làm đường dẫn ảo?
Ví dụ: em có URL thế này http://site.com/index.php?id=1 => nó sẽ truy vấn bài 1 trong CSDL, trong bài 1 này có trường tiêu đề, giả sử nó là "bai1". Em muốn biến url http://site.com/index.php?id=1 thành http://site.com/bai1.html(đường dẫn ảo) thì trong rewrite.php mình sẽ viết như thế nào?
Em đọc bên sân chơi tuổi trẻ thì file .htaccess lại như thế này
Code:
RewriteEngine on Options +FollowSymlinks RewriteBase /
Nếu cách trình bày của em quá lủng củng các bác không hiểu thì nói tóm lại thế này: em muốn tạo 1 đường dẫn ảo http://site.com/[tieu-de-bai-viet].html để thay cho đường dẫn thực http://site.com/index.php?id=[0-9]* thì mình sẽ khai báo trong file .htaccess như thế nào (và cả rewrite.php)
Note:
[tieu-de-bai-viet]: là tiêu đề của bài viết có id=[0-9]* được truy vấn trong CSDL.
Cám ơn các bác $______$
Bài liên quan
<html>
<head>
<title>Demo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<a href="pro/1/2">
Demo 1
</a>
</body>
</html>
B2 : tạo 1 file .htaccess
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ module.php?p=$1&id=$2&type=$3 [L]
B3: tao 1 file module.php
$str = $_GET['p'];
$arr = explode("/",$str);
if($arr[0]=="pro"){
echo "Test" ;
}
?>
Nho bat chuc nang mod_rewrite