Fecshop Url重寫

2018-05-24 14:48 更新

Fecshop Url重寫

fecshop url 重寫,屬于自定義的方式重寫,定義的重寫會被保存到mongodb中。

1.去掉index.php

對于url: https://fecshop.appfront.fancyecommerce.com/index.php/special-occasion 為了seo的考慮,我們希望把index.php/去掉,下面是設(shè)置方法。

找到文件 @appfront/config/fecshop_local_services/Url.php ,內(nèi)容如下:

return [
    'url' => [
        'showScriptName'=> false, # if is show index.php in url.  if set false ,you must config nginx rewrite 
    ],
];

showScriptNametrue代表url中顯示index.php ,false代表url中不顯示index.php

當(dāng)設(shè)置了false,也就是不顯示index.php,需要在nginx設(shè)置重寫 ,具體可以搜索這個(用bing.com搜索就不錯,不需要翻墻,也可以 切換英文搜索)。

2. 重寫原理

2.1 在數(shù)據(jù)庫的產(chǎn)品或分類保存的時候,會有一個唯一的url_key字符串,和真實(shí)的yii2的 url key對應(yīng),譬如/xxxxxxx 對應(yīng) /catalog/product/index?id=xxxx

2.2當(dāng)一個url訪問的時候,會到數(shù)據(jù)庫(mongodb)中查詢,該url是否在數(shù)據(jù)庫中存在,如果存在, 則會使用對應(yīng)的真實(shí)的yii2的url路徑,譬如上面的/catalog/product/index

2.3 執(zhí)行相應(yīng)的模塊

關(guān)于重寫的原理詳細(xì)參看:yii2 Url 自定義 偽靜態(tài)url

3. 重寫的url類型

3.1 page頁面

3.2 category分類頁面

3.3 product產(chǎn)品頁面

在上述頁面保存的時候,如果填寫url_key就會使用填寫的url_key,如果不填寫 就會使用名字生成。

如果生成的url在數(shù)據(jù)庫中存在,那么會在后面加入一組隨機(jī)數(shù)字,如果隨機(jī)數(shù)字還存在, 那么就會使用另外一組隨機(jī)數(shù)字,直到唯一為止。

Url自定義(Url 重寫)是為了seo,讓網(wǎng)頁中的關(guān)鍵字,標(biāo)題,在url中也出現(xiàn)。

4.fecshop實(shí)現(xiàn)重寫的文件

文件為:@fecshop/yii/web/Request.php ,重寫了@yii/web/Request的一部分方法實(shí)現(xiàn)的。 具體的實(shí)現(xiàn)方法,你可以參看文件@fecshop/yii/web/Request.php的內(nèi)容

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號