首页  >  问答  >  正文

Apache重写路由,隐藏index.php在本地环境失效

  1. 本地的httpd.conf文件的LoadModule rewrite_module modules/mod_rewrite.so已经开启

  2. 根目录下的.htaccess文件重写规则如下:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On

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

  1. config.php文件中已经设置:'URL_MODEL' => 2,

发布到服务器上访问:http://域名/admin可以正确访问,但是在本地测试环境,将应用根目录虚拟域名之后访问:
http://inurse.com/admin报错:
404 NOT Found
The requested URL /Admin/Org/orgAdd was not found on this server.
想请问这是为什么呢?Apache重写路由规则的原理是什么(通俗易懂的解释)?
另:重写规则已经尝试过:
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
RewriteRule ^(.*)$ index.php?s=/$1 [QSA,PT,L]

巴扎黑巴扎黑2712 天前697

全部回复(1)我来回复

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 17:00:54

    楼主,你的配置好像有误:
    1、下面的配置应该是 apache 的配置 httpd.conf
    <IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

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

    2、.htaccess 配置只需要中间的:
    RewriteEngine on

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

    建议用第二种方式;

    回复
    0
  • 取消回复