关于重写和重定向的 htaccess 问题

关于重写和重定向的 htaccess 问题

我一直在绞尽脑汁尝试在 .htaccess 中完成一些相当简单的事情,但没有成功。我希望有人能帮助我。

我需要实现 3 件基本的事情:1)将我的域名 www.sample.com 重定向到 www.sample.com/subdir1/cgi-bin/ 2)如果页面为 NULL 或 index.html,则加载脚本 home.php 3)隐藏子目录“subdir1/cgi-bin”

例如,当有人访问 www.sample.com 时,他们会看到:www.sample.com/home.php

服务器实际上正在读取 www.sample.com/subdir1/cgi-bin/home.php

谢谢你!

答案1

您可以拥有一个如下所示的 .htaccess 文件:

Options +FollowSymLinks
IndexIgnore */*

# Turn on the RewriteEngine
RewriteEngine On

# When accessing root
DirectoryIndex subdir1/cgi-bin/home.php

# Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . subdir1/cgi-bin/home.php

然后,您必须确保您的 Apache 服务器授权重写。为此,请编辑文件/etc/apache2/apache2.conf。在此文件中,找到您使用的目录,并将“AllowOverride None”更改为“AllowOverride all”。以下是示例:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

之后,运行以下命令激活 Apache 的重写模块:

sudo a2enmod rewrite

最后,重新启动 Apache:

sudo service apache2 restart

相关内容