虚拟主机程序如何运行thinkphp程序
时间:2023-06-30 17:54:02 | 来源:网站运营
时间:2023-06-30 17:54:02 来源:网站运营
虚拟主机程序如何运行thinkphp程序:
一、虚拟主机主目录虚拟主机站点都是默认的WEB目录,一般虚拟主机的默认根目录是无法修改的。
二、thinkphp遇到问题thinkphp程序部分程序在开发的时候没有调整对应的程序入口,就需要网站访问默认指向到Public目录,因为tp5的入口是在public目录下,这就导致tp5默认使用不了虚拟主机,为了使用网站可以在虚拟主机上正常访问,那么有两种方案可以解决,建议使用第一种
一、可以在网站根目录下添加相应的伪静态规则,将对应的访问直接调整到Public目录
1、apache下伪静态规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]
</IfModule>
保存命名为.htaccess(注意有点)
2、IIS7下伪静态规则:
<?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,上传到网站wwwroot目录。
二、修改程序的入口文件代码
1.将public下的入口文件index.php移到根目录,修改如下
<?php
// [ 应用入口文件 ]
// 定义应用目录
define('APP_PATH', __DIR__ . './application/');
// 加载框架引导文件
require __DIR__ . './thinkphp/start.php';
2.同时将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>
不过安全性就不稳定了,不建议这样操作,并且相关目录文件路径也要做相关处理,否则css、js 图片等可能就不显示了。