在 apache 中重写规则不生效的问题 [No input file specified.] 解决

解决办法

首先请确保你的vhost配置正确,因为这篇文章不是解决vhost配置的问题的

我的vhost 大致如下:

在apache中重写规则不生效的问题[No input file specified.]解决

修改

找到项目根目录下的 public 目录找到.htaccess文件打开,找到下边这句

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
问题就出在这儿。修改为以下(仔细看一遍,是有区别的哦)

RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
记得重启apache

如果自定义了入口的.php 文件 ,如下本人的.htacess 文件


<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # 重定向 pc 的资源目录路径
    RewriteCond %{HTTP_HOST} ^www\.666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ pc/$1 

    # 重定向 pc 的入口文件
    RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ pc.php [L]

    # 重定向 pc 带参数的处理
    RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ pc.php?/$1 [L]

    # 重定向 mobile 的资源目录路径
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ m/$1

    # 重定向 mobile 的入口文件
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^(.*)$ mobile.php [L]

    # 重定向 mobile 带参数的处理
    RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ mobile.php?/$1

</IfModule>

请同样加上一个 ?

本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
340
喜欢
558
收藏
1107
排名:64
访问:12.2 万
私信
所有博文
社区赞助商