我一直在绞尽脑汁尝试在 .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