ThinkPHP5 隱藏接口裏面的index.php

隱藏index.php

官方介紹是這樣的:http://www.kancloud.cn/thinkphp/thinkphp5_quickstart/145250php

能夠去掉URL地址裏面的入口文件index.php,可是須要額外配置WEB服務器的重寫規則。html

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

<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>

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

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>

可是仍是不行,查到這麼一篇文章(http://bbs.php100.com/simple/?t300372.html):
Apache Rewrite 擬靜態配置
一、mod_rewrite 簡介和配置
Rewirte主要的功能就是實現URL的跳轉和隱藏真實地址,基於Perl語言的正則
表達式規範。平時幫助咱們實現擬靜態,擬目錄,域名跳轉,防止盜鏈等
如一個普通訪問地址爲  
   */php100.php?id=2
能夠轉成:
   */PHP100_2.html
或轉成:
   */PHP100_2/

Apache配置:
支持httpd.conf 配置和目錄 .htaccess配置
啓用rewrite
# LoadModule rewrite_module modules/mod_rewrite.so
去除前面的 #
LoadModule rewrite_module modules/mod_rewrite.so
啓用.htaccess
AllowOverride None    修改成: AllowOverride All


二、mod_rewrite 規則的使用
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.php100.com  [NC]
RewriteRule   ^/(.*) http://www.php100.com/ [L]
啓動rewrite引擎 判斷主機 跳轉到
RewriteEngine on
RewriteRule ^/test([0-9]*).html$ /test.php?id=$1
RewriteRule ^/new([0-9]*)/$ /new.php?id=$1 [R]


三、mod_rewrite 規則修正符
1) R 強制外部重定向
2) F 禁用URL,返回403HTTP狀態碼。
3) G 強制URL爲GONE,返回410HTTP狀態碼。
4) P 強制使用代理轉發。
5) L 代表當前規則是最後一條規則,中止分析之後規則的重寫。
6) N 從新從第一條規則開始運行重寫過程。
7) C 與下一條規則關聯

若是規則匹配則正常處理,如下修正符無效

8) T=MIME-type(force MIME type) 強制MIME類型
9) NS  只用於不是內部子請求
10) NC 不區分大小寫
11) QSA 追加請求字符串
12) NE 不在輸出轉義特殊字符   \%3d$1  等價於 =$1
-----------------------------------------------------------------------------
也就是最後還要補充這麼處理:

把 #LoadModule rewrite_module modules/mod_rewrite.so 前面的#去掉,
再把權限AllowOverride None都改成AllowOverride All ,重啓apacheiview

相關文章
相關標籤/搜索