虛擬主機(jī)程序如何運(yùn)行thinkphp程序
時(shí)間:2023-06-30 17:54:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-30 17:54:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)
虛擬主機(jī)程序如何運(yùn)行thinkphp程序:
一、虛擬主機(jī)主目錄虛擬主機(jī)站點(diǎn)都是默認(rèn)的WEB目錄,一般虛擬主機(jī)的默認(rèn)根目錄是無(wú)法修改的。
二、thinkphp遇到問(wèn)題thinkphp程序部分程序在開(kāi)發(fā)的時(shí)候沒(méi)有調(diào)整對(duì)應(yīng)的程序入口,就需要網(wǎng)站訪問(wèn)默認(rèn)指向到Public目錄,因?yàn)閠p5的入口是在public目錄下,這就導(dǎo)致tp5默認(rèn)使用不了虛擬主機(jī),為了使用網(wǎng)站可以在虛擬主機(jī)上正常訪問(wèn),那么有兩種方案可以解決,建議使用第一種
一、可以在網(wǎng)站根目錄下添加相應(yīng)的偽靜態(tài)規(guī)則,將對(duì)應(yīng)的訪問(wèn)直接調(diào)整到Public目錄
1、apache下偽靜態(tài)規(guī)則:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>
保存命名為.htaccess(注意有點(diǎn))
2、IIS7下偽靜態(tài)規(guī)則:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="public" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^/public/" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/public/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
保存命名為web.config,上傳到網(wǎng)站wwwroot目錄。
二、修改程序的入口文件代碼
1.將public下的入口文件index.php移到根目錄,修改如下
<?php
// [ 應(yīng)用入口文件 ]
// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . './application/');
// 加載框架引導(dǎo)文件
require __DIR__ . './thinkphp/start.php';
2.同時(shí)將public/目錄下的文件 .htaccess 隨index.php移到根目錄
<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>
不過(guò)安全性就不穩(wěn)定了,不建議這樣操作,并且相關(guān)目錄文件路徑也要做相關(guān)處理,否則css、js 圖片等可能就不顯示了。
關(guān)鍵詞:程序,運(yùn)行,主機(jī),虛擬