鍍金池/ 問(wèn)答/PHP  HTML/ thinkphp5如何將public隱藏掉

thinkphp5如何將public隱藏掉

將index.php放入根目錄,設(shè)置了相對(duì)路徑,但是就只有主頁(yè)控制器默認(rèn)方法能用,其他的方法都用不了,不存在

回答
編輯回答
汐顏

root 直接指到public目錄下

2017年11月26日 22:19
編輯回答
不舍棄

thinkphp5 應(yīng)該是把 網(wǎng)站根目錄 配置在 public下面吧
另外 其它方法訪問(wèn)不了 是不是 pathinfo 沒(méi)開(kāi)的原因

2018年8月27日 02:17
編輯回答
擱淺

你們的方法太復(fù)雜了。nginx中配置root /path/project/public/即可。指向public下面。

2018年1月22日 11:26
編輯回答
祉小皓

如果index.php不是放在public,而是否放在項(xiàng)目根目錄,
1、首先將站點(diǎn)的綁定到項(xiàng)目根目錄
2、在根目錄創(chuàng)建index.php

<?php

// [ 應(yīng)用入口文件 ]
// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/thinkphp/start.php';

正常的訪問(wèn)地址是:

http://域名/index.php/module/controller/action

3、如果需要在url訪問(wèn)的時(shí)候隱藏index.php
需要做重寫(xiě)規(guī)則,以nginx為例

location / {
    if (!-e $request_filename) {
        rewrite  ^(.*)$  /index.php?s=/$1  last;
        break;
    }
 }

訪問(wèn)地址變成:

http://域名/module/controller/action
2017年10月8日 16:14
編輯回答
不將就

把public中的index.php放到根目錄下 然后改成這樣就可以不用public訪問(wèn)了
clipboard.png

2018年1月12日 11:38
編輯回答
舊城人

補(bǔ)充樓上隱藏public,如果是apache,請(qǐng)?jiān)趆ttpd.conf配置中打開(kāi)重寫(xiě)功能

#LoadModule rewrite_module modules/mod_rewrite.so
#去除上一行的#符號(hào)

然后再網(wǎng)站根目錄/或者自己配置的應(yīng)用目錄下添加.htaccess文件,文件重寫(xiě)規(guī)則

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

具體的修改方案在某度上搜索很多,TP的官方的文檔也有說(shuō)明

2017年6月3日 12:58
編輯回答
還吻

這個(gè)thinkphp5官方有詳細(xì)文檔的,如果你的服務(wù)器是apache,就相對(duì)簡(jiǎn)單些,如果是nginx,需要在nginx的配置文件里設(shè)置對(duì)你那個(gè)項(xiàng)目的重寫(xiě),以達(dá)到隱藏index.php的目的,官方配置

2018年3月23日 06:20
編輯回答
兮顏
一般直接是把根目錄指到public下啊
2018年9月17日 18:09