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 规则的主要内容,如果未能解决你的问题,请参考以下文章
如何从 httpd.conf 获取 ServerAdmin 电子邮件变量