Tạo url thân thiện trong yii2

0
730

Url thân thiện là 1 yếu tố rất quan trọng đối với seo .Thử tưởng tượng 1 url đẹp làm cho người đọc dễ dàng quay trở lại trang web biết bao .Bạn thử nhìn 2 url sau đây và chọn 1 kiểu url mà bạn muốn dùng đối với web mình

[php]

http://localhost/toolseo/frontend/web/site/about

[/php]

và url thứ 2

[php]

http://localhost/toolseo/frontend/web/index.php?r=site%2Fabout

[/php]

Tất nhiên bạn sẽ chọn url đầu tiên cho web bởi vì 1 điều nó đẹp và thân thiện hơn .Dưới đây mình xin giới thiệu đến các bạn cách biến đổi url thứ 2 thành url thứ 1 trong yii2

Bước 1 : Tạo file .htaccess trong frontend/web có nội dung như sau

[php]

Options +FollowSymLinks
IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php

[/php]

Lưu ý cái này chỉ cần thiết với server apache còn với nginx thì ko cần vì với nginx thì file htaccess này vô dụng

Bước 2 : Bạn vào file main.php trong frontend/config thêm dòng sau

[php]

‘urlManager’ => [
‘enablePrettyUrl’ => true,
‘showScriptName’ => false,
‘rules’ => [
],
],

[/php]

yii_url_than_thien

Bạn bỏ dấu comment ở chỗ mình đánh dấu đi vậy là chúng ta đã được url thân thiện như đường link 1 .

Thêm đuôi .html vào đường link trong yii2 như sau nhé mọi người

[php]

‘enablePrettyUrl’ => true,
‘showScriptName’ => false,
‘suffix’ => ‘.html’,

[/php]

Và bạn muốn thay gì cũng được vào đăng sau ví dụ .hbsprogram chẳng hạn .Thật là tuyệt vời  mà

Custom url trong yii2 như ý mình 

Cái này cực kì hay nhé cả nhà .Bạn để ý url đã đẹp rồi nhưng nó lại ko mang ý nghĩa gợi nhớ gì cả  .

[php]

http://localhost/toolseo/frontend/web/gioi-thieu

[/php]

Thay cái url dưới thì sao nhỉ .Liệu bạn có thích điều đó

[php]

http://localhost/toolseo/frontend/web/site/about/

[/php]

Để làm điều đó bạn chỉ cần thêm rules như sau

[php]

‘rules’ => [
‘gioi-thieu’=>’site/about’,
],

[/php]

Như vậy là ok rồi .giờ đến rewiter hàng loạt nhé .Ví dụ bạn có danh sách các bài viết với id từ 1 đến 100 chẳng hạn .Url sẽ như sau

[php]

<em>http://localhost/toolseo/frontend/web/article/view?id=24</em>

[/php]

Bạn muốn thay nó thành dạng đẹp hơn

[php]

http://localhost/toolseo/frontend/web/article/24

[/php]

Thì bạn cần rewiter hàng loạt như sau

[php]

‘rules’ => [
‘gioi-thieu’=>’site/about’,
‘article/<id:\d+>’ => ‘article/view’,
],

[/php]

Bạn nên nhớ quy tắc này để làm nhé \d+ tương ứng với dẫy số (digitar)nhé \w+ tương ứng với 1 dẫy số nhé (word)

Cách tao url trong yii2 để các bạn biết thêm nhé .

Mình thích dùng kiểu Html::a hơn dưới đây là 2 url chuyển hướng demo .

[php]

<?= Html::a(‘Url chuyển hướng’, [‘site/index’, ‘page’ => 10, ‘sort’ => ‘name’])?>
<?= Html::a(‘Url giới thiệu’, [‘site/about’])?>

<?= Html::a(‘Url chuyển hướng tới bài viết’, [‘article/view’, ‘id’ => 10])?>

[/php]

Lưu ý là url thứ 3 mình cấu hình trong rules urlmanager nên viết như vậy và dưới đây là 3 url được tạo ra từ 3 dòng code trên

[php]

http://localhost/toolseo/frontend/web/site/index.html?page=10&sort=name

http://localhost/toolseo/frontend/web/gioi-thieu.html

http://localhost/toolseo/frontend/web/article/10.html

[/php]

Thế là ngon rồi .Có gì không hiểu các bạn để lại comment phía dưới nhé mình sẽ cố gắng giải đáp ạ

Lưu ý quan trọng 

Bạn nên cấu hình url trong code nhé không nên cấu hình trong file htaccess vì sao .Đơn giản bận sau nếu khách hàng của bạn nổi hứng sang dùng nginx server hay liteserver thì bạn phải bảo trì mệt nên tốt hết là cấu hình trong code .Bận sau khách chuyển sang gì cũng dễ và thuận tiện