我在ubuntu 16上有一个localhost。在root localhost目录(/ 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。我是网络开发人员的新手,并不知道我该怎么做,请帮助我。
答案 0 :(得分:0)
您必须首先启用此类动态配置文件(" .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服务器主机配置中,而不是使用动态配置文件(&#34; .htaccess&#34;)。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。
答案 1 :(得分:0)
也许您需要创建一个文件夹,然后在其中的应用程序中工作。例如:
var/www/html/project
; .htaccess
放进去;