mod_rewrite可以在Linux中使用,但不能在Windows中使用

大家都知道Apache和mod_rewrite的黑魔法…

另外我也有一个问题…

我刚刚从这里https://www.apachelounge.com/download/win64/下载了Apache 2.4,并且启用了mod_rewrite

LoadModule rewrite_module modules/mod_rewrite.so

输出httpd.exe -v

Server version: Apache/2.4.10 (Win64) Apache Lounge VC10 Server built: Jul 19 2014 12:25:58

我的httpd.conf http://pastebin.com/TDHpurBi

和我的.htaccess http://pastebin.com/f6KV3Zd2

.htaccess是我的MVC框架

在此先感谢您的帮助

PS:.htaccess像一个魅力工作

Server version: Apache/2.4.7 (Win32) Apache Lounge VC10 Server built: Nov 26 2013 15:46:56

来自Uniserver

PS2:我忘了说,我使用httpd.conf中启用的AllowOverride在Linux下运行.htaccess。 所以它可能只是一个Apache-Windows的问题。

我解决了这个问题!

 DocumentRoot "${SRVROOT}/htdocs" <Directory "${SRVROOT}/htdocs"> 

部分!

那里设置

 AllowOverride All 

这将解决你的问题!

你必须考虑别名和.htaccess的位置

所以,例如,如果您创建了一个名为“mywebsite”的别名(因此您将打开http:// localhost / mywebsite以访问主页),但是在子文件夹(例如/ api文件夹)中有.htaccess,则需要使用这个RewriteBase指令:

RewriteBase / mywebsite / api

然后重新启动apache