URL 重写规则不适用于本地主机 (apache)

URL rewrite rule not working on localhost (apache)

这是我的link:http://localhost/test/index.php

现在我想把它改成这样:http://localhost/home/

所以我创建了一个 .htaccess 文件并将其放在 test 文件夹中。

这是我的 .htaccess 代码:

RewriteEngine on

RewriteRule ^test/index.php$ home/

mod_rewrite 也已启用。

但无论如何这条规则对我不起作用,浏览器将我重定向到原始 url http://localhost/test/index.php。但是我在网上试过这个规则,它似乎在那里工作。这是我测试规则的网站快照。

您需要有 2 个免费规则:

RewriteEngine on
RewriteBase /

# external redirect for chancing URL
RewriteCond %{THE_REQUEST} \s/+test/index\.php[\s?] [NC]
RewriteRule ^ home/ [L,R=302]

# internal routing to actual URL
RewriteRule ^home/?$ test/index.php [L,NC]

试试这些路径:

  1. 在终端 运行 a2enmod rewrite 并重新启动 apache。

  2. Apache 最高 2.3

如果已经完成,请执行以下操作,

进入这个目录,

cd /etc/apache2/sites-available/

sudo gedit default

替换此行:

Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all 并将其更改如下

Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all 然后启动apache服务器

sudo service apache2 restart

阿帕奇 2.4+

sudo gedit /etc/apache2/apache2.conf

最后添加以下内容

```

删除重启服务器时出现的错误

服务器名称本地主机

phpmyadmin 404 错误已解决

包括/etc/phpmyadmin/apache.conf ```

同时为 /var/www 目录设置 AllowOverride All

然后按照以下步骤操作

sudo adduser <username> www-data sudo chown -R www-data:www-data /var/www sudo chmod -R g+rw /var/www

重启apache

完成!!!

如果仍然遇到问题,请检查 /var/log/apache2/error.log