我在 ubuntu 16 上有一个本地主机。在本地主机目录 (/var/www/html/) 中,我放置了这个 htaccess 文件。
AddDefaultCharset utf-8
RewriteEngine on
RewriteRule ^index?$ index.php
当我输入localhost/index
apache 时说我
The requested URL /index was not found on this server.
这是Apache配置中的错误吗?
基本上我想重定向到index.php
我网站的根目录,在这里我想将这样的东西解析localhost/cart/item/1
为数组,然后实现 MVC。我是网络开发新手,不知道该怎么做,请帮助我。
您必须首先启用对此类动态配置文件(" .htaccess
" 样式文件)的解释。默认情况下它们是禁用的,因为它们会大大降低服务器的速度。通常最好将此类规则直接放置在服务器静态配置文件中。
要启用它们,请查看以下AllowOverride
命令:https : //httpd.apache.org/docs/2.4/mod/core.html#allowoverride
<Directory "/var/www/html">
AllowOverride All
</Directory>
所以既然你无论如何都必须修改那个配置……为什么不把你的重写规则也放在那里呢?也更简单、更强大、更快速……
除此之外,有时以它们在两个位置、http 服务器(虚拟)主机配置和动态配置文件中工作的方式实现重写规则是一个好主意:
RewriteEngine on
RewriteRule ^/?index/?$ index.php [L]
还有一个一般提示:你应该总是喜欢将这样的规则放在 http 服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。众所周知,这些文件容易出错,难以调试,而且确实会降低服务器的速度。它们仅在您无法控制主机配置的情况下(阅读:非常便宜的托管服务提供商)或如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦) )。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句