Laravel 重写不起作用

fle*_*ex_ 0 php apache ubuntu .htaccess

我试图使 htaccess 重写在 apache2 ubuntu 17.04 上工作,但它不起作用。我想做的是使用 localhost/anyroute 访问路由,但访问它的唯一方法是 localhost/PROJECTNAME/public/anyroute。localhost/ANYROUTE 在 Windows 上工作,但 apache 将在 ubuntu 上返回“未找到请求的 url”,我不知道为什么..这是我的confs文件.htaccess

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Run Code Online (Sandbox Code Playgroud)

我的虚拟主机

<VirtualHost *:80>
DocumentRoot /var/www/html/test/public/
<Directory /var/www/html/test/public>
Options Indexes FollowSymLinks MultiViews
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
ErrorLog /var/log/apache2/test-error_log
CustomLog /var/log/apache2/test-access_log common
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

Apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

所以底线是 localhost/anyroute 不起作用,但 localhost/project/public/anyroute 可以工作。我几乎已经尝试了一切:/

Suj*_*tel 5

启用 mod_rewrite

现在,我们需要激活 mod_rewrite。

sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

这将激活该模块或提醒您该模块已生效。要使这些更改生效,请重新启动 Apache。

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

在开始之前,我们需要设置并保护更多设置。

首先,允许更改 .htaccess 文件。使用 nano 或您喜欢的文本编辑器打开默认的 Apache 配置文件。

sudo nano /etc/apache2/sites-enabled/000-default.conf
Run Code Online (Sandbox Code Playgroud)

在该文件内,您将找到第 1 行的块。在该块内,添加以下块:

/etc/apache2/sites-available/default
<Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

您的文件现在应该与以下内容匹配。确保所有块都正确缩进。

/etc/apache2/sites-available/default
<VirtualHost *:80>
    <Directory /var/www/html>

        . . .

    </Directory>

    . . .
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

要使这些更改生效,请重新启动 Apache。

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)

现在,创建 .htaccess 文件。

有关详细信息,请点击以下参考链接:

https://www.digitalocean.com/community/tutorials/how-to-set-up-mod_rewrite-for-apache-on-ubuntu-14-04