我的mod_rewrite无法正常工作。 这是mod_rewrite部分:
<IfModule mod_rewrite.c> Options +FollowSymlinks # Options +SymLinksIfOwnerMatch RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] </IfModule>
它在Ubuntu和OS X上就像一个魅力,但在Windows下的EasyPHP上失败。 我已经在apacheconfiguration中取消了下面一行:
LoadModule rewrite_module modules/mod_rewrite.so
而且我已经把每一个AllowOverride指令设置为All(这只是一个本地服务器,所以就安全性而言,这是不相关的)。 我想要mod_rewrite的特定虚拟主机的虚拟主机条目如下:
<VirtualHost 127.0.0.1> DocumentRoot "E:/Dropbox/Websites/mysite/public" ServerName myvhost.mysite <Directory "E:/Dropbox/Websites/mysite/public"> Options FollowSymLinks Indexes RewriteEngine On AllowOverride All Order allow,deny Allow from all #Deny from all Require all granted </Directory> </VirtualHost>
如果我在公共文件夹的index.php文件的顶部放置一个“die”,它永远不会发生,所以显然,mod重写从来没有尝试将其redirect到index.php。 我得到的是404s。
看到这个答案:
easyphp和.htaccess
在EasyPHP中默认安装Apache没有激活选项来使用.htaccess文件来修改文件夹中的服务器配置。
你必须告诉Apache什么配置可以用.htaccess文件和哪个文件夹来改变。 要启用主Web服务器上的所有配置更改,您应该编辑http.conf(在Apache / conf文件夹中),然后查找
希望这可以帮助 :)