fecshop url 重寫,屬于自定義的方式重寫,定義的重寫會被保存到mongodb中。
對于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
],
];
showScriptName
:true
代表url中顯示index.php
,false
代表url中不顯示index.php
當設(shè)置了false
,也就是不顯示index.php,需要在nginx設(shè)置重寫
,具體可以搜索這個(用bing.com搜索就不錯,不需要翻墻,也可以
切換英文搜索)。
2.1 在數(shù)據(jù)庫的產(chǎn)品或分類保存的時候,會有一個唯一的url_key字符串,和真實的yii2的
url key
對應,譬如/xxxxxxx
對應 /catalog/product/index?id=xxxx
2.2當一個url訪問的時候,會到數(shù)據(jù)庫(mongodb)中查詢,該url是否在數(shù)據(jù)庫中存在,如果存在,
則會使用對應的真實的yii2的url路徑,譬如上面的/catalog/product/index
2.3 執(zhí)行相應的模塊
關(guān)于重寫的原理詳細參看:yii2 Url 自定義 偽靜態(tài)url
3.1 page頁面
3.2 category分類頁面
3.3 product產(chǎn)品頁面
在上述頁面保存的時候,如果填寫url_key就會使用填寫的url_key,如果不填寫 就會使用名字生成。
如果生成的url在數(shù)據(jù)庫中存在,那么會在后面加入一組隨機數(shù)字,如果隨機數(shù)字還存在, 那么就會使用另外一組隨機數(shù)字,直到唯一為止。
Url自定義(Url 重寫)是為了seo,讓網(wǎng)頁中的關(guān)鍵字,標題,在url中也出現(xiàn)。
文件為:@fecshop/yii/web/Request.php
,重寫了@yii/web/Request
的一部分方法實現(xiàn)的。
具體的實現(xiàn)方法,你可以參看文件@fecshop/yii/web/Request.php
的內(nèi)容
更多建議: