我的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上失败了。 我在apache配置中取消注释以下行:
LoadModule rewrite_module modules/mod_rewrite.so
我已经将每个AllowOverride指令设置为All(它只是一个本地服务器,因此就安全性而言它是无关紧要的)。我希望mod_rewrite打开的特定vhost的vhost条目如下:
<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重写从未试图将其重定向到index.php。我得到的只是404。
答案 0 :(得分:0)
看到这个答案:
EasyPHP中Apache的默认安装没有激活使用.htaccess文件修改文件夹中的服务器配置的选项。
您必须告诉Apache可以使用.htaccess文件以及在哪个文件夹中更改哪些配置。要在主Web服务器上启用所有配置更改,您应该编辑http.conf(在Apache / conf文件夹中),并查找
希望这会有所帮助:)