在 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自学中心 付费知识星球:破解面试:程序员的求职导师
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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