久久无码中文字幕_日韩精品无码一本二本三_久久精品呦女暗网_欧美一级夜夜爽_久久精品国产99久久99久久久

19
2019/01

tp5中定義url和路由的方法

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


在使用tp5框架的時候,沒有重寫url地址的情況下,域名后面的后綴是非常長的,而url的地址長了的話就會對seo很不友好,所以在這種情況下,我們就應該對url地址進行配置

1.jpg

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

2.jpg

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

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

3.jpg

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

4.jpg

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

5.jpg

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

6.jpg

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

7.jpg

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

8.jpg

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

9.jpg

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

再看一個例子:

10.jpg

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

11.jpg

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

12.jpg

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

14.jpg

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

15.jpg

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

16.jpg

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

17.jpg18.jpg


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

關鍵詞:
返回列表