Apache简单重写规则在httpd-vhosts.conf中运行良好,但在.htaccess文件中运行不好
Apache 2.4、Windows 10 httpd-vhosts.conf中的虚拟主机:Apache简单重写规则在httpd-vhosts.conf中运行良好,但在.htaccess文件中运行不好,apache,.htaccess,mod-rewrite,url-rewriting,Apache,.htaccess,Mod Rewrite,Url Rewriting,Apache 2.4、Windows 10 httpd-vhosts.conf中的虚拟主机: <VirtualHost sporemvc:80> ServerAdmin jakub.sawczuk@gmail.com DocumentRoot "C:/Apache24vhosts/hosts/sporemvc" ServerName sporemvc ErrorLog "logs/sporemvc-error.log" CustomLog "l
<VirtualHost sporemvc:80>
ServerAdmin jakub.sawczuk@gmail.com
DocumentRoot "C:/Apache24vhosts/hosts/sporemvc"
ServerName sporemvc
ErrorLog "logs/sporemvc-error.log"
CustomLog "logs/sporemvc-access.log" common
<Directory C:/Apache24vhosts/hosts/sporemvc>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [L]
</Directory>
</VirtualHost>
重写规则似乎根本不起作用——Apache说是404。有什么问题吗?我确保mod_rewrite处于启用状态,即使是这样。htaccess是ANSI而不是UTF。在Apache和vhost的日志中,只有404
我做错了什么?是的,我很笨
它是AllowOverride
无需更改为AllowOverride All
(好吧,All
可以开发)
原因:finita。您需要启用
.htaccess
样式文件的解释。看看他们的文档:除此之外,如果您能够访问并控制真正的http主机配置,为什么要使用.htaccess
样式的文件?这些文件只会产生问题并降低服务器速度。您好,谢谢回复。要回答您关于.htaccess
的问题,我可以控制开发web serwer,没错。但我可能没有在受控环境中。另外,conf
中的此设置需要重新启动服务器,这在生产环境中可能不太方便。在生产环境中重新启动apache http服务器根本不是问题。这就是优雅的
命令的作用。相反:在生产环境中摆弄.htaccess
样式的文件会带来更大的风险:一旦保存,它们就是生命,可能会破坏整个服务器。游戏结束了。但是,如果您使用的是Apache基金会推荐的主机配置,那么您可以在测试之前正确地测试语法正确性的更改。只需看看http服务器提供的控制选项。
<VirtualHost sporemvc:80>
ServerAdmin jakub.sawczuk@gmail.com
DocumentRoot "C:/Apache24vhosts/hosts/sporemvc"
ServerName sporemvc
ErrorLog "logs/sporemvc-error.log"
CustomLog "logs/sporemvc-access.log" common
</VirtualHost>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]