东京热成人网站_XX另类XX伦理XXAV_亚洲精品无码成人AAA片_高清av中文字幕无码_手机看片国产欧美日韩高清_bd美妙第进化型

咨詢電話:
15628812133
19
2019/01

tp5中定義url和路由的方法

發(fā)布時(shí)間:2019-01-19 18:01:14
發(fā)布者:神棍子
瀏覽量:
0


在使用tp5框架的時(shí)候,沒有重寫url地址的情況下,域名后面的后綴是非常長(zhǎng)的,而url的地址長(zhǎng)了的話就會(huì)對(duì)seo很不友好,所以在這種情況下,我們就應(yīng)該對(duì)url地址進(jìn)行配置

1.jpg

這個(gè)時(shí)候,就需要定義路由了。定義路由,就是假設(shè)按照上面的網(wǎng)址,那么訪問這樣網(wǎng)站的時(shí)候,也是可以正確訪問。那么就是定義路由成功了。定義路由的規(guī)則也可以自己定

2.jpg

在thinkphp5框架的application文件夾中,有route.php文件,這個(gè)文件中就是定義路由規(guī)則的。

下面這張圖,是域名和定義路由規(guī)則的對(duì)應(yīng)關(guān)系

3.jpg

路由解釋:不看域名部分,url中以hello開始的,有參數(shù)name的,都會(huì)去訪問index模塊下的index控制器下的hello方法。條件就是是get請(qǐng)求,后綴為html

4.jpg

上面的[:name]加方括號(hào)的原因是表示這個(gè)參數(shù)可以有,也可以沒有,是可選的。如果將方括號(hào)去掉,那么用戶提交url的時(shí)候,就必須要有這個(gè)參數(shù),否則就會(huì)報(bào)錯(cuò)。只有像這樣,添加參數(shù)之后,才能訪問成功

5.jpg

如果不想在route.php中配路由的話,也可以這么配

6.jpg

如果要傳入多個(gè)參數(shù),就發(fā)現(xiàn)路徑又很長(zhǎng)了

7.jpg

因此,為了更短的路徑,就需要再次去config.php中進(jìn)行配置

8.jpg

配置好了之后,再去url欄輸入地址嘗試

9.jpg

可以看到,參數(shù)和參數(shù)值都可以一一對(duì)應(yīng)了。那么這樣有什么好處呢?這樣就可以欺騙搜索引擎的抓取了。讓搜索引擎誤認(rèn)為這就是訪問的是hello文件夾下的aaa文件夾下的那個(gè)很長(zhǎng)名字的文件。而實(shí)際上,這里卻是用戶提交的多個(gè)參數(shù)、參數(shù)值。

再看一個(gè)例子:

10.jpg

這里例子可以看到:year和:month是必選的參數(shù),如果給他們直接加上[]方括號(hào),那么會(huì)報(bào)錯(cuò)。加了方括號(hào),代表他們是可選的,既然是可選的,在原來的控制器的today方法中就需要給形參year和month賦予默認(rèn)值,這樣就不會(huì)報(bào)錯(cuò)了。

11.jpg

至于為什么要生成url地址,暫時(shí)還不清楚,接著往下學(xué)(貌似是為了得到一個(gè)路徑,這個(gè)路徑有用)

12.jpg

首先,要想使用生成url的函數(shù),那么必須得先引入一些類文件,否則就會(huì)出現(xiàn)如下報(bào)錯(cuò)

14.jpg

引入類文件之后,就可以正常使用相應(yīng)的方法了

15.jpg

如下圖,框出來的部分所代表的含義是使用Url::build方法,將a=1&b=2這個(gè)參數(shù)傳到當(dāng)前控制器中的url2方法中。若沒有url2,那么默認(rèn)傳到當(dāng)前方法中

16.jpg

但是,在導(dǎo)入url類文件之后,建議不用上面的那種框出來的使用方法,建議直接使用url()方法,更加簡(jiǎn)潔省事,效果還一樣。

17.jpg18.jpg


除此之外我們還可以在Apache中重寫url,詳情請(qǐng)參考:Apache URL重寫規(guī)則

關(guān)鍵詞:
返回列表