XAMPP httpd.conf 设置以允许 mod_rewrite 规则

Posted

技术标签:

【中文标题】XAMPP httpd.conf 设置以允许 mod_rewrite 规则【英文标题】:XAMPP httpd.conf setup to allow for mod_rewrite rules 【发布时间】:2014-12-21 10:42:26 【问题描述】:

我最近从一家公司接手了一个未完成的 CodeIgniter 项目,该公司已分包我来完成它。由于我无法在我的本地主机上查看项目,我在使用前一个开发人员实施的 mod_rewrite 规则时遇到了一些问题。

据我所知,应用的规则只是为了摆脱 URL 的“index.php”部分。该项目完美运行,因此我认为问题在于我设置 xampp httpd.conf 文件的方式。根据本网站和其他来源的说明,我对 httpd.conf 文件进行了以下更改:

LoadModule rewrite_module modules/mod_rewrite.so

<Directory />
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

DocumentRoot "C:/Users/Me/Documents/Github"
<Directory "C:/Users/Me/Documents/Github">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

当我转到 localhost 并单击项目时,我只是收到 404 错误。我已经为此苦苦挣扎了几天,不知道如何继续。你能看出我设置 httpd.conf 文件的方式有问题吗?感谢您的帮助!

编辑:添加了正在使用的重写规则。

RewriteEngine On
RewriteBase /

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

SetEnv ENVIRONMENT development

【问题讨论】:

到目前为止看起来还不错。要测试您的 .htaccess 是否已加载,请在此处插入一些乱码以查看是否获得 HTTP 500。如果没有,您的 .htaccess 将被忽略。否则,您必须在此处发布您的重写规则,以便我们查看它们是否有问题。 您好,很抱歉回复晚了。我确实收到了 500 错误,所以看起来好像找到了 htaccess 文件。我不明白的是,一切都在现场环境中完美运行,所以项目文件本身肯定很好,但我的 xampp 配置不正确?我在上面添加了重写规则供您查看。谢谢! 你解决过这个问题吗?我遇到了同样的问题,无法在我的本地主机上运行。 【参考方案1】:

这可能是一个疯狂的猜测,但是当我查看我的 Xampp apache 配置时,它有

 ..
 allow from all
 Require all granted
 </Directory>

【讨论】:

很可能不是问题所在。如果它是一个已经开发了一段时间的项目(正如 OP 所提到的),那么允许/要求问题会更早地出现。

以上是关于XAMPP httpd.conf 设置以允许 mod_rewrite 规则的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP apache 无法连接到监听端口

如何从 httpd.conf 获取 ServerAdmin 电子邮件变量

在 MacOs Mojave 上找不到 XAMPP 的 httpd-xampp.conf 文件

XAMPP配置httpd-vhosts.conf后无法启动

ini XAMPP httpd.conf

未找到 httpd.exe 入口点