资讯专栏INFORMATION COLUMN

ThinkPHP5.0 Linux Apache/Nginx重写URL配置

Bryan / 945人阅读

摘要:如果你的应用安装在二级目录,的伪静态方法设置如下,其中是所在的目录名称。

作者系统是Ubuntu,CentOS及其他linux发行版请自行变更
PHP框架是ThinkPHP5.0,官方文档说的有些模糊,所以自行补充了一下
有错误欢迎随时指出

可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考:

[Apache]

1.启用rewrite模块

2.sudo a2enmod rewrite 或者 sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

3.编辑配置文件/etc/apache2/apache2.conf,找到自己web根目录对应的位置


Options Indexes FollowSymLinks
AllowOverride None
Require all granted

4.将AllowOverride None 改为AllowOverride All

5.重启服务sudo service apache2 restart

6.把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下(默认已创建,如果没有自己创建)


Options +FollowSymlinks -Multiviews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
[Nginx]

在Nginx低版本中,是不支持PATHINFO的,但是可以通过在Nginx中配置转发规则实现,

编辑文件/etc/nginx/sites-available/default:

 server { // …..省略部分代码
   root /var/www/html;
   //找到这个模块,然后填入下面的配置
 }
  location / { // …..省略部分代码
   if (!-e $request_filename) {
   rewrite  ^(.*)$  /index.php?s=/$1  last;
   break;
    }
 }

其实内部是转发到了ThinkPHP提供的兼容URL,利用这种方式,可以解决其他不支持PATHINFO的WEB服务器环境。

如果你的应用安装在二级目录,Nginx的伪静态方法设置如下,其中/tp5/public/是所在的目录名称。

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

原来的访问URL:

http://serverName/index.php/模块/控制器/操作/[参数名/参数值...]

设置后,我们可以采用下面的方式访问:

http://serverName/模块/控制器/操作/[参数名/参数值...]

如果你没有修改服务器的权限,可以在index.php入口文件做修改,这不是正确的做法,并且不一定成功,视服务器而定,只是在框架执行前补全$_SERVER["PATH_INFO"]参数

$_SERVER["PATH_INFO"] = $_SERVER["REQUEST_URI" ];

最后重启服务器

sudo service nginx restart

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30723.html

相关文章

  • ThinkPHP5.0 Linux Apache/Nginx重写URL配置

    摘要:如果你的应用安装在二级目录,的伪静态方法设置如下,其中是所在的目录名称。 作者系统是Ubuntu,CentOS及其他linux发行版请自行变更PHP框架是ThinkPHP5.0,官方文档说的有些模糊,所以自行补充了一下有错误欢迎随时指出 可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考: [Apache] 1.启用rewrite模块 2.sudo a2...

    inapt 评论0 收藏0
  • ThinkPHP5.0 Linux Apache/Nginx重写URL配置

    摘要:如果你的应用安装在二级目录,的伪静态方法设置如下,其中是所在的目录名称。 作者系统是Ubuntu,CentOS及其他linux发行版请自行变更PHP框架是ThinkPHP5.0,官方文档说的有些模糊,所以自行补充了一下有错误欢迎随时指出 可以通过URL重写隐藏应用的入口文件index.php,下面是相关服务器的配置参考: [Apache] 1.启用rewrite模块 2.sudo a2...

    JouyPub 评论0 收藏0
  • thinkphp5项目如何在云虚拟主机部署

    摘要:查阅完全开发手册部署虚拟主机环境,了解情況后,开始修改。环境阿里云云虚拟系统第一步修改移动入口文件位置,把它移动到根目录下即。如果服务器没处理。第五步下的文件路径大小写敏感。测试下网站所有功能,没问题,部署配置完毕。 查阅ThinkPHP5.0完全开发手册->部署->虚拟主机环境,了解情況后,开始修改。 环境 thinkphp 5.0.11阿里云云虚拟系统CentOS 第一步 修改移动...

    Shonim 评论0 收藏0
  • ThinkPhp学习笔记(一)

    摘要:如上为三个模块行为行为是在预先定义好的一个应用位置执行的一些操作。发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为。给某一个钩子绑定相关行为就成了一种类编程的思想。 ThinkPhp5.0 Composer: php世界里的包管理器 目录结构 project 应用部署目录 ├─application 应用目录(可设置) ...

    imtianx 评论0 收藏0

发表评论

0条评论

Bryan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<