localhost

时间:2017-04-10 10:30:21

标签: apache .htaccess

我在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。我是网络开发人员的新手,并不知道我该怎么做,请帮助我。

2 个答案:

答案 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放进去;
  • 在该文件夹中使用您的应用程序。