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

浏览:48日期:2022-08-05

问题描述

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

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

<IfModule mod_rewrite.c>Options +FollowSymlinksRewriteEngine On

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

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

发布到服务器上访问:http://域名/admin可以正确访问,但是在本地测试环境,将应用根目录虚拟域名之后访问:http://inurse.com/admin报错:404 NOT FoundThe 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]

问题解答

回答1:

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

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

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

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

建议用第二种方式;

相关文章: