久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

怎么在thinkphp5中實現(xiàn)一個路由功能-創(chuàng)新互聯(lián)

這篇文章將為大家詳細講解有關怎么在thinkphp5中實現(xiàn)一個路由功能,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創(chuàng)新互聯(lián)專注于企業(yè)全網整合營銷推廣、網站重做改版、利辛網站定制設計、自適應品牌網站建設、HTML5商城網站開發(fā)、集團公司官網建設、成都外貿網站建設、高端網站制作、響應式網頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為利辛等各大城市提供網站開發(fā)制作服務。

URL訪問


ThinkPHP采用單一入口模式訪問應用,對應用的所有請求都定向到應用的入口文件,系統(tǒng)會從URL參數(shù)中解析當前請求的模塊、控制器和操作,下面是一個標準的URL訪問格式:

http://domainName/index.php/模塊/控制器/操作

其中index.php就稱之為應用的入口文件(注意入口文件可以被隱藏,后面會提到)

模塊在ThinkPHP中的概念其實就是應用目錄下面的子目錄,而官方的規(guī)范是目錄名小寫,因此模塊全部采用小寫命名,無論URL是否開啟大小寫轉換,模塊名都會強制小寫

應用的index模塊的Index控制器定義如下:

<?php
namespace app\index\controller;
class Index
{
  public function index()
  {
    return 'index';
  }
  public function hello($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

如果直接訪問入口文件的話,由于URL中沒有模塊、控制器和操作,因此系統(tǒng)會訪問默認模塊(index)下面的默認控制器(Index)的默認操作(index),因此下面的訪問是等效的:

http://tp5.com/index.php
http://tp5.com/index.php/index/index/index

如果要訪問控制器的hello方法,則需要使用完整的URL地址

http://tp5.com/index.php/index/index/hello/name/thinkphp

訪問URL地址后頁面輸出結果為:

Hello,thinkphp!

由于name參數(shù)為可選參數(shù),因此也可以使用

http://tp5.com/index.php/index/index/hello

訪問URL地址后頁面輸出結果為:

Hello,World!

默認情況下,URL地址中的控制器和操作名是不區(qū)分大小寫的,因此下面的訪問其實是等效的:

http://tp5.com/index.php/index/Index/Index
http://tp5.com/index.php/index/INDEX/INDEX

如果控制器是駝峰的,例如定義一個HelloWorld控制器(application/index/controller/HelloWorld.php):

<?php
namespace app\index\controller;
class HelloWorld
{
  public function index($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

正確的URL訪問地址(該地址可以使用url方法生成)應該是

http://tp5.com/index.php/index/hello_world/index

系統(tǒng)會自動定位到HelloWorld控制器類去操作

如果使用

http://tp5.com/index.php/index/HelloWorld/index

將會報錯,并提示Helloworld控制器類不存在

如果希望嚴格區(qū)分大小寫訪問(這樣就可以支持駝峰法進行控制器訪問),可以在應用配置文件中設置:

// 關閉URL自動轉換(支持駝峰訪問控制器)
'url_convert' => false,

關閉URL自動轉換之后,必須使用下面的URL地址訪問(控制器名稱必須嚴格使用控制器類的名稱,不包含控制器后綴):

http://tp5.com/index.php/index/Index/index
http://tp5.com/index.php/index/HelloWorld/index

如果服務器環(huán)境不支持pathinfo方式的URL訪問,可以使用兼容方式,例如:

http://tp5.com/index.php?s=/index/Index/index

其中變量s的名稱的可以配置的

5.0不再支持普通的URL訪問方式,所以下面的訪問是無效的,你會發(fā)現(xiàn)無論輸入什么,訪問的都是默認的控制器和操作

http://tp5.com/index.php?m=index&c=Index&a=hello

參數(shù)傳入


通過操作方法的參數(shù)綁定功能,可以實現(xiàn)自動獲取URL的參數(shù),仍然以上面的控制器為例,控制器代碼如下:

<?php
namespace app\index\controller;
class Index
{
  public function index()
  {
    return 'index';
  }
  public function hello($name = 'World')
  {
    return 'Hello,' . $name . '!';
  }
}

當我們訪問

http://tp5.com/index.php/index/index/hello

就是訪問app\index\controller\Index控制器類的hello方法,因為沒有傳入任何參數(shù),name參數(shù)就使用默認值World。如果傳入name參數(shù),則使用:

http://tp5.com/index.php/index/index/hello/name/thinkphp

頁面輸出結果為:

Hello,thinkphp!

現(xiàn)在給hello方法增加第二個參數(shù):

public function hello($name = 'World', $city = '')
  {
    return 'Hello,' . $name . '! You come from ' . $city . '.';
  }

訪問地址為http://tp5.com/index.php/index/index/hello/name/thinkphp/city/shanghai

頁面輸出結果為:

Hello,thinkphp! You come from shanghai.

可以看到,hello方法會自動獲取URL地址中的同名參數(shù)值作為方法的參數(shù)值,而且這個參數(shù)的傳入順序不受URL參數(shù)順序的影響,例如下面的URL地址輸出的結果和上面是一樣的:

http://tp5.com/index.php/index/index/hello/city/shanghai/name/thinkphp

或者使用http://tp5.com/index.php/index/index/hello?city=shanghai&name=thinkphp

還可以進一步對URL地址做簡化,前提就是我們必須明確參數(shù)的順序代表的變量,我們更改下URL參數(shù)的獲取方式,把應用配置文件中的url_param_type參數(shù)的值修改如下:

// 按照參數(shù)順序獲取
'url_param_type' => 1,

現(xiàn)在,URL的參數(shù)傳值方式就變成了嚴格按照操作方法的變量定義順序來傳值了,也就是說我們必須使用下面的URL地址訪問才能正確傳入name和city參數(shù)到hello方法:http://tp5.com/index.php/index/index/hello/thinkphp/shanghai

頁面輸出結果為:

Hello,thinkphp! You come from shanghai.

如果改變參數(shù)順序為http://tp5.com/index.php/index/index/hello/shanghai/thinkphp

頁面輸出結果為:

Hello,shanghai! You come from thinkphp.

顯然不是我們預期的結果。

同樣,我們試圖通過http://tp5.com/index.php/index/index/hello/name/thinkphp/city/shanghai

訪問也不會得到正確的結果

[注意]按順序綁定參數(shù)的話,操作方法的參數(shù)只能使用URL pathinfo變量,而不能使用get或者post變量

隱藏入口


可以去掉URL地址里面的入口文件index.php,但是需要額外配置WEB服務器的重寫規(guī)則。

以Apache為例,需要在入口文件的同級添加.htaccess文件(官方默認自帶了該文件),內容如下

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

如果用的phpstudy,規(guī)則如下:

<IfModule mod_rewrite.c> 
Options +FollowSymlinks -Multiviews 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] 
</IfModule>

接下來就可以使用下面的URL地址訪問了

http://tp5.com/index/index/index
http://tp5.com/index/index/hello

如果使用的apache版本使用上面的方式無法正常隱藏index.php,可以嘗試使用下面的方式配置.htaccess文件:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

如果是Nginx環(huán)境的話,可以在Nginx.conf中添加:

location / { // …..省略部分代碼
  if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?s=/$1 last;
    break;
  }
}

定義路由


URL地址里面的index模塊怎么才能省略呢,默認的URL地址顯得有點長,下面就來說說如何通過路由簡化URL訪問。

我們在路由定義文件(application/route.php)里面添加一些路由規(guī)則,如下:

return [
  // 添加路由規(guī)則 路由到 index控制器的hello操作方法
  'hello/:name' => 'index/index/hello',
];

該路由規(guī)則表示所有hello開頭的并且?guī)?shù)的訪問都會路由到index控制器的hello操作方法。

路由之前的URL訪問地址為:http://tp5.com/index/index/hello/name/thinkphp

定義路由后就只能訪問下面的URL地址http://tp5.com/hello/thinkphp

[注意]定義路由規(guī)則后,原來的URL地址將會失效,變成非法請求。

但這里有一個小問題,如果我們只是訪問http://tp5.com/hello

將發(fā)生錯誤

事實上這是由于路由沒有正確匹配到,我們修改路由規(guī)則如下:

return [
  // 路由參數(shù)name為可選
  'hello/[:name]' => 'index/hello',
];

使用[]把路由規(guī)則中的變量包起來,就表示該變量為可選,接下來就可以正常訪問了http://tp5.com/hello

當name參數(shù)沒有傳入值的時候,hello方法的name參數(shù)有默認值World,所以輸出的內容為 Hello,World!

除了路由配置文件中定義之外,還可以采用動態(tài)定義路由規(guī)則的方式定義,例如在路由配置文件(application/route.php)的開頭直接添加下面的方法:

use think\Route;
Route::rule('hello/:name', 'index/hello');

完成的效果和使用配置方式定義是一樣的。

無論是配置方式還是通過Route類的方法定義路由,都統(tǒng)一放到路由配置文件application/route.php文件中

[注意]路由配置不支持在模塊配置文件中設置

【完整匹配】

前面定義的路由是只要以hello開頭就能進行匹配,如果需要完整匹配,可以使用下面的定義:

return [
  // 路由參數(shù)name為可選
  'hello/[:name]$' => 'index/hello',
];

當路由規(guī)則以$結尾的時候就表示當前路由規(guī)則需要完整匹配。

當我們訪問下面的URL地址的時候:

http://tp5.com/hello // 正確匹配
http://tp5.com/hello/thinkphp // 正確匹配
http://tp5.com/hello/thinkphp/val/value // 不會匹配

【閉包定義】

還支持通過定義閉包為某些特殊的場景定義路由規(guī)則,例如:

return [
  // 定義閉包
  'hello/[:name]' => function ($name) {
    return 'Hello,' . $name . '!';
  },
];

或者

use think\Route;
Route::rule('hello/:name', function ($name) {
  return 'Hello,' . $name . '!';
});

[注意]閉包函數(shù)的參數(shù)就是路由規(guī)則中定義的變量

因此,當訪問下面的URL地址:http://tp5.com/hello/thinkphp

會輸出

Hello,thinkphp!

【設置URL分隔符】

如果需要改變URL地址中的pathinfo參數(shù)分隔符,只需要在應用配置文件(application/config.php)中設置:

// 設置pathinfo分隔符
'pathinfo_depr'     => '-',

路由規(guī)則定義無需做任何改變,我們就可以訪問下面的地址:http://tp5.com/hello-thinkphp

【路由參數(shù)】

還可以約束路由規(guī)則的請求類型或者URL后綴之類的條件,例如:

return [
  // 定義路由的請求類型和后綴
  'hello/[:name]' => ['index/hello', ['method' => 'get', 'ext' => 'html']],
];

上面定義的路由規(guī)則限制了必須是get請求,而且后綴必須是html的,所以下面的訪問地址:

http://tp5.com/hello // 無效
http://tp5.com/hello.html // 有效
http://tp5.com/hello/thinkphp // 無效
http://tp5.com/hello/thinkphp.html // 有效

【變量規(guī)則】

接下來,嘗試一些復雜的路由規(guī)則定義滿足不同的路由變量。在此之前,首先增加一個控制器類如下:

<?php
namespace app\index\controller;
class Blog
{
  public function get($id)
  {
    return '查看id=' . $id . '的內容';
  }
  public function read($name)
  {
    return '查看name=' . $name . '的內容';
  }
  public function archive($year, $month)
  {
    return '查看' . $year . '/' . $month . '的歸檔內容';
  }
}

添加如下路由規(guī)則:

return [
  'blog/:year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],
  'blog/:id'     => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
  'blog/:name'    => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
];

在上面的路由規(guī)則中,我們對變量進行的規(guī)則約束,變量規(guī)則使用正則表達式進行定義。

我們看下幾種URL訪問的情況

// 訪問id為5的內容
http://tp5.com/blog/5
// 訪問name為thinkphp的內容
http://tp5.com/blog/thinkphp
// 訪問2015年5月的歸檔內容
http://tp5.com/blog/2015/05

 【路由分組】

上面的三個路由規(guī)則由于都是blog打頭,所以我們可以做如下的簡化:

return [
  '[blog]' => [
    ':year/:month' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],  
    ':id'     => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
    ':name'    => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
  ],
];

對于這種定義方式,我們稱之為路由分組,路由分組一定程度上可以提高路由檢測的效率

【復雜路由】

有時候,還需要對URL做一些特殊的定制,例如如果要同時支持下面的訪問地址

http://tp5.com/blog/thinkphp
http://tp5.com/blog-2015-05

我們只要稍微改變路由定義規(guī)則即可:

return [
  'blog/:id'      => ['blog/get', ['method' => 'get'], ['id' => '\d+']],
  'blog/:name'     => ['blog/read', ['method' => 'get'], ['name' => '\w+']],
  'blog-<year>-<month>' => ['blog/archive', ['method' => 'get'], ['year' => '\d{4}', 'month' => '\d{2}']],
];

對 blog-<year>-<month> 這樣的非正常規(guī)范,我們需要使用<變量名>這樣的變量定義方式,而不是 :變量名方式。

簡單起見,我們還可以把變量規(guī)則統(tǒng)一定義,例如:

return [
  // 全局變量規(guī)則定義
  '__pattern__'     => [
    'name' => '\w+',
    'id'  => '\d+',
    'year' => '\d{4}',
    'month' => '\d{2}',
  ],
  // 路由規(guī)則定義
  'blog/:id'      => 'blog/get',
  'blog/:name'     => 'blog/read',
  'blog-<year>-<month>' => 'blog/archive',
];

在__pattern__中定義的變量規(guī)則我們稱之為全局變量規(guī)則,在路由規(guī)則里面定義的變量規(guī)則我們稱之為局部變量規(guī)則,如果一個變量同時定義了全局規(guī)則和局部規(guī)則的話,當前的局部規(guī)則會覆蓋全局規(guī)則的,例如:

return [
  // 全局變量規(guī)則
  '__pattern__'     => [
    'name' => '\w+',
    'id'  => '\d+',
    'year' => '\d{4}',
    'month' => '\d{2}',
  ],

  'blog/:id'      => 'blog/get',
  // 定義了局部變量規(guī)則
  'blog/:name'     => ['blog/read', ['method' => 'get'], ['name' => '\w{5,}']],
  'blog-<year>-<month>' => 'blog/archive',
];

URL生成


定義路由規(guī)則之后,可以通過Url類來方便的生成實際的URL地址(路由地址),針對上面的路由規(guī)則,我們可以用下面的方式生成URL地址。

// 輸出 blog/thinkphp
Url::build('blog/read', 'name=thinkphp');
Url::build('blog/read', ['name' => 'thinkphp']);
// 輸出 blog/5
Url::build('blog/get', 'id=5');
Url::build('blog/get', ['id' => 5]);
// 輸出 blog/2015/05
Url::build('blog/archive', 'year=2015&month=05');
Url::build('blog/archive', ['year' => '2015', 'month' => '05']);

[注意]build方法的第一個參數(shù)使用路由定義中的完整路由地址

還可以使用系統(tǒng)提供的助手函數(shù)url來簡化

url('blog/read', 'name=thinkphp');
// 等效于
Url::build('blog/read', 'name=thinkphp');

通常在模板文件中輸出的話,可以使用助手函數(shù),例如:

{:url('blog/read', 'name=thinkphp')}

如果我們的路由規(guī)則發(fā)生調整,生成的URL地址會自動變化

如果你配置了url_html_suffix參數(shù)的話,生成的URL地址會帶上后綴,例如:

'url_html_suffix'  => 'html',

那么生成的URL地址 類似

blog/thinkphp.html 
blog/2015/05.html

如果你的URL地址全部采用路由方式定義,也可以直接使用路由規(guī)則來定義URL生成,例如:

url('/blog/thinkphp');
Url::build('/blog/8');
Url::build('/blog/archive/2015/05');

生成方法的第一個參數(shù)一定要和路由定義的路由地址保持一致,如果你的路由地址比較特殊,例如使用閉包定義的話,則需要手動給路由指定標識,例如:

// 添加hello路由標識
Route::rule(['hello','hello/:name'], function($name){
  return 'Hello,'.$name;
});
// 根據(jù)路由標識快速生成URL
Url::build('hello', 'name=thinkphp');
// 或者使用
Url::build('hello', ['name' => 'thinkphp']);

關于怎么在thinkphp5中實現(xiàn)一個路由功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享標題:怎么在thinkphp5中實現(xiàn)一個路由功能-創(chuàng)新互聯(lián)
鏈接地址:http://www.js-pz168.com/article14/docjge.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化網站制作搜索引擎優(yōu)化網站導航軟件開發(fā)品牌網站制作

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
国产精品一区在线观看| 日韩videos| 日韩电影免费观看高清完整| 中文字幕一区二区三区四区五区六区 | 久久精品亚洲精品国产欧美| 亚洲女同女同女同女同女同69| 日本特黄久久久高潮| 风间由美中文字幕在线看视频国产欧美| 国产 高清 精品 在线 a| 一本色道久久综合亚洲精品婷婷 | 免费成人美女在线观看| 成人av资源在线| 欧美日本韩国国产| 欧美精品xxxxbbbb| 自拍偷在线精品自拍偷无码专区 | 国产成人精品一区二区三区四区| 国产三区精品| 欧美亚洲综合一区| 国产三级三级三级精品8ⅰ区| 亚洲成人三级小说| kk眼镜猥琐国模调教系列一区二区| 久久亚洲一区二区| 欧美高清hd18日本| 亚洲欧美日韩成人高清在线一区| 国内精品国产三级国产a久久| 电影午夜精品一区二区三区| 在线亚洲美日韩| 久久久久久电影| 蜜臀久久久久久久| 国产综合欧美在线看| 欧美日韩激情一区二区| 亚洲欧洲日韩在线| 国产毛片精品国产一区二区三区| 精品人伦一区二区三区| 91麻豆精品国产91久久久| 亚洲另类在线一区| 成人综合婷婷国产精品久久免费| 日韩精品欧美专区| 久久色视频免费观看| 日韩av电影天堂| 国产精品三区www17con| 欧美老女人第四色| 亚洲制服丝袜在线| 91视频免费在线观看| 在线免费观看视频一区| 国产精品成人免费| 国产成人夜色高潮福利影视| 欧美精品v日韩精品v国产精品| 日韩视频在线永久播放| 亚洲va欧美va国产va天堂影院| 97精品超碰一区二区三区| 91黄色激情网站| 亚洲三级免费观看| aaa欧美色吧激情视频| 91激情在线视频| 亚洲理论在线观看| 91视频免费播放| 7777精品伊人久久久大香线蕉| 一片黄亚洲嫩模| 成人av网站观看| 91精品欧美福利在线观看| 亚洲国产欧美日韩另类综合 | 美女一区二区视频| 欧洲亚洲一区二区| 国产视频一区不卡| 国产成人综合在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 99精彩视频| 欧美一级精品在线| 免费不卡在线视频| 特级西西444www大精品视频| 国产欧美久久久精品影院| 国产成人精品免费视频网站| 一本一道综合狠狠老| 一区二区三区精品在线| 国产日韩欧美二区| 久久久久久久综合色一本| 韩国av一区二区三区| 中文字幕在线中文字幕日亚韩一区| 亚洲欧洲日本在线| 99re资源| www久久久久| 成人污污视频在线观看| 欧美日韩精品福利| 日本女优在线视频一区二区| 欧美一区二区三区四区夜夜大片 | 91丨九色丨国产| 精品女同一区二区| 国产精品一区二区久久精品爱涩| 色哟哟国产精品免费观看| 一区二区三区四区在线播放| 国产一区二区三区高清| 国产欧美精品国产国产专区 | 日韩欧美中文字幕一区| 精品在线播放免费| 欧美性猛交xxxx乱大交退制版| 五月激情丁香一区二区三区| 日本一区二区在线视频| 亚洲狠狠丁香婷婷综合久久久| 精品国产乱码久久久久久蜜柚 | 91同城在线观看| 精品日韩一区二区| 粉嫩av一区二区三区粉嫩| 欧美精品自拍偷拍| 国产乱国产乱300精品| 欧美日韩高清一区二区不卡| 麻豆91在线看| 欧美色手机在线观看| 极品少妇xxxx偷拍精品少妇| 日本国产一区二区| 蜜桃视频一区二区三区在线观看| 色又黄又爽网站www久久| 五月天国产精品| 一本一道波多野结衣一区二区| 日韩精品乱码av一区二区| 一区二区三区精品国产| 图片区小说区区亚洲影院| 中文网丁香综合网| 日韩国产精品91| 在线免费一区三区| 韩国精品免费视频| 91 com成人网| 成人av网站免费观看| 欧美精品一区二区久久婷婷 | 国语精品中文字幕| 亚洲欧美偷拍三级| 日本10禁啪啪无遮挡免费一区二区 | 国产精品对白交换视频 | 国产亚洲精品精华液| 成人一区二区三区四区| 一区二区中文视频| 日韩欧美在线电影| 免费在线一区观看| 欧美精品在线视频| 不卡视频一二三| 亚洲国产高清不卡| 久久天天狠狠| 性做久久久久久免费观看欧美| 在线一区二区三区| 国产不卡免费视频| 久久午夜电影网| 国产一区二区无遮挡| 亚洲激情成人在线| 日本精品裸体写真集在线观看| 精品在线视频一区| 日韩精品在线一区| 国产精品一 二 三| 一个色综合网站| 色94色欧美sute亚洲线路二| 韩国毛片一区二区三区| 精品国产髙清在线看国产毛片| 懂色av一区二区三区在线播放| 亚洲精品国产精华液| 色94色欧美sute亚洲线路一ni| 国产精品一区二区三区乱码 | www.av亚洲| 亚洲欧洲在线观看av| 伊人情人网综合| 国产成人精品一区二区三区四区 | 亚洲国产美国国产综合一区二区 | 日韩高清一区二区| 91精品国产综合久久香蕉的特点| 97久久超碰精品国产| 亚洲乱码国产乱码精品精98午夜 | 欧美本精品男人aⅴ天堂| 国产91视觉| 亚洲高清不卡在线| 欧美精品日韩一本| av电影成人| 亚洲mv大片欧洲mv大片精品| 欧美精品v日韩精品v韩国精品v| 91热门视频在线观看| 亚洲综合久久久| 91精品在线免费| 久99久视频| 精品在线观看免费| 中文字幕免费在线观看视频一区| 亚洲精品不卡| 成人av在线播放网址| 亚洲精品免费视频| 欧美电影一区二区| 久久精品国产理论片免费| 美日韩黄色大片| 国产拍欧美日韩视频二区| 亚洲欧洲日夜超级视频| 成人免费毛片a| 亚洲一区二区三区三| 欧美一级免费大片| 欧美一区少妇| 成人中文字幕电影| 一区二区久久久久| 欧美成人一级视频| 亚洲欧美日韩精品在线| 成人av动漫网站| 亚洲成av人片在线观看无码| 日韩欧美高清在线| 亚洲亚洲精品三区日韩精品在线视频| 成人午夜免费电影| 婷婷激情综合网| 国产欧美日韩麻豆91|