搜索
首页后端开发php教程nginx与apache服务url问题

问题描述

1. 最近在做自己的小博客,本地用的wamp集成环境,线上是lnmp。web框架使用的是thinkphp5.0.1,项目中有一个模块是front,控制器Article,分别有indexlistsshow方法。

2. tp框架中设置路由,如下所示

    #front文章
    'blog' => ['front/Article/index', [], []],
    'a/:id' => ['front/Article/show', [], []],
    'blogs' => ['front/Article/lists', [], []],
    'blog/add' => ['front/Article/add', [], []],
    'blog/edit/:id' => ['front/Article/edit', [], []],

3. 并且设置了index方法重定向至lists方法

    public function index()
    {
        $this->redirect(Url::build('front/Article/lists', '', false));
    }

4. 具体错误:在本地访问链接 1 http://www.ibala.top/blog链接 2 http://www.ibala.top/blog/ 效果是一样的,均是跳转至链接 3 http://www.ibala.top/blogs ;当将项目迁移至线上时,就发现问题了,访问链接 2时,却会跳转到 链接 4 http://www.ibala.top/index.php/blogs

5. 问题说明有些乱,朋友们可以解答我的遗憾吗?

nginx配置文件

<code>server
{
    listen 80;
    #listen [::]:80;
    server_name ibala.top www.ibala.top;
    index index.html index.htm index.php;
    root  /home/wwwroot/ibala.top/public;
    location / {
    if (!-e $request_filename) {
        rewrite  ^/(.*)$  /index.php/$1  last;
            break;
        }
    }

    ## php配置,兼容thinkphp框架
    location ~ .php {
        set $path_info "";
        set $real_script_name $fastcgi_script_name;

        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
        }

        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
        fastcgi_param SCRIPT_NAME $real_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SERVER_PORT 80;
        include fastcgi_params;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    location ~ /\.ht
    {
        deny all;
    }
    
    ## 禁止敏感文件的直接访问
    location ~* \.(inc|bak|sql|lua|so|ini|conf)$ {
        deny all;
    }
    
    access_log  /home/wwwlogs/ibala.top.log;
}</code>

回复内容:

问题描述

1. 最近在做自己的小博客,本地用的wamp集成环境,线上是lnmp。web框架使用的是thinkphp5.0.1,项目中有一个模块是front,控制器Article,分别有indexlistsshow方法。

2. tp框架中设置路由,如下所示

    #front文章
    'blog' => ['front/Article/index', [], []],
    'a/:id' => ['front/Article/show', [], []],
    'blogs' => ['front/Article/lists', [], []],
    'blog/add' => ['front/Article/add', [], []],
    'blog/edit/:id' => ['front/Article/edit', [], []],

3. 并且设置了index方法重定向至lists方法

    public function index()
    {
        $this->redirect(Url::build('front/Article/lists', '', false));
    }

4. 具体错误:在本地访问链接 1 http://www.ibala.top/blog链接 2 http://www.ibala.top/blog/ 效果是一样的,均是跳转至链接 3 http://www.ibala.top/blogs ;当将项目迁移至线上时,就发现问题了,访问链接 2时,却会跳转到 链接 4 http://www.ibala.top/index.php/blogs

5. 问题说明有些乱,朋友们可以解答我的遗憾吗?

nginx配置文件

<code>server
{
    listen 80;
    #listen [::]:80;
    server_name ibala.top www.ibala.top;
    index index.html index.htm index.php;
    root  /home/wwwroot/ibala.top/public;
    location / {
    if (!-e $request_filename) {
        rewrite  ^/(.*)$  /index.php/$1  last;
            break;
        }
    }

    ## php配置,兼容thinkphp框架
    location ~ .php {
        set $path_info "";
        set $real_script_name $fastcgi_script_name;

        if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
            set $real_script_name $1;
            set $path_info $2;
        }

        fastcgi_pass  unix:/tmp/php-cgi.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
        fastcgi_param SCRIPT_NAME $real_script_name;
        fastcgi_param PATH_INFO $path_info;
        fastcgi_param SERVER_PORT 80;
        include fastcgi_params;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }

    location ~ .*\.(js|css)?$
    {
        expires      12h;
    }

    location ~ /\.ht
    {
        deny all;
    }
    
    ## 禁止敏感文件的直接访问
    location ~* \.(inc|bak|sql|lua|so|ini|conf)$ {
        deny all;
    }
    
    access_log  /home/wwwlogs/ibala.top.log;
}</code>

可以参考这个:http://www.jb51.net/article/8...
不确定能用

估计是nginx配置的问题,给你个配置:
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php?s=$1 last;
}
}

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
图文详解apache2.4+php8.0的安装配置方法图文详解apache2.4+php8.0的安装配置方法Dec 06, 2022 pm 04:53 PM

本文给大家介绍如何安装apache2.4,以及如何配置php8.0,文中附有图文详细步骤,下面就带大家一起看看怎么安装配置apache2.4+php8.0吧~

Linux apache怎么限制并发连接和下载速度Linux apache怎么限制并发连接和下载速度May 12, 2023 am 10:49 AM

mod_limitipconn,这个是apache的一个非官方模块,根据同一个来源ip进行并发连接控制,bw_mod,它可以根据来源ip进行带宽限制,它们都是apache的第三方模块。1.下载:wgetwget2.安装#tar-zxvfmod_limitipconn-0.22.tar.gz#cdmod_limitipconn-0.22#vimakefile修改:apxs=“/usr/local/apache2/bin/apxs”#这里是自己apache的apxs路径,加载模块或者#/usr/lo

apache版本怎么查看?apache版本怎么查看?Jun 14, 2019 pm 02:40 PM

查看​apache版本的步骤:1、进入cmd命令窗口;2、使用cd命令切换到Apache的bin目录下,语法“cd bin目录路径”;3、执行“httpd -v”命令来查询版本信息,在输出结果中即可查看apache版本号。

超细!Ubuntu20.04安装Apache+PHP8环境超细!Ubuntu20.04安装Apache+PHP8环境Mar 21, 2023 pm 03:26 PM

本篇文章给大家带来了关于PHP的相关知识,其中主要跟大家分享在Ubuntu20.04 LTS环境下安装Apache的全过程,并且针对其中可能出现的一些坑也会提供解决方案,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

nginx,tomcat,apache的区别是什么nginx,tomcat,apache的区别是什么May 15, 2023 pm 01:40 PM

1.Nginx和tomcat的区别nginx常用做静态内容服务和代理服务器,直接外来请求转发给后面的应用服务器(tomcat,Django等),tomcat更多用来做一个应用容器,让javawebapp泡在里面的东西。严格意义上来讲,Apache和nginx应该叫做HTTPServer,而tomcat是一个ApplicationServer是一个Servlet/JSO应用的容器。客户端通过HTTPServer访问服务器上存储的资源(HTML文件,图片文件等),HTTPServer是中只是把服务器

php站用iis乱码而apache没事怎么解决php站用iis乱码而apache没事怎么解决Mar 23, 2023 pm 02:48 PM

​在使用 PHP 进行网站开发时,你可能会遇到字符编码问题。特别是在使用不同的 Web 服务器时,会发现 IIS 和 Apache 处理字符编码的方法不同。当你使用 IIS 时,可能会发现在使用 UTF-8 编码时出现了乱码现象;而在使用 Apache 时,一切正常,没有出现任何问题。这种情况应该怎么解决呢?

如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群如何在 RHEL 9/8 上设置高可用性 Apache(HTTP)集群Jun 09, 2023 pm 06:20 PM

Pacemaker是适用于类Linux操作系统的高可用性集群软件。Pacemaker被称为“集群资源管理器”,它通过在集群节点之间进行资源故障转移来提供集群资源的最大可用性。Pacemaker使用Corosync进行集群组件之间的心跳和内部通信,Corosync还负责集群中的投票选举(Quorum)。先决条件在我们开始之前,请确保你拥有以下内容:两台RHEL9/8服务器RedHat订阅或本地配置的仓库通过SSH访问两台服务器root或sudo权限互联网连接实验室详情:服务器1:node1.exa

Linux下如何查看nginx、apache、mysql和php的编译参数Linux下如何查看nginx、apache、mysql和php的编译参数May 14, 2023 pm 10:22 PM

快速查看服务器软件的编译参数:1、nginx编译参数:your_nginx_dir/sbin/nginx-v2、apache编译参数:catyour_apache_dir/build/config.nice3、php编译参数:your_php_dir/bin/php-i|grepconfigure4、mysql编译参数:catyour_mysql_dir/bin/mysqlbug|grepconfigure以下是完整的实操例子:查看获取nginx的编译参数:[root@www~]#/usr/lo

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中