mod_rewrite 和多个 RewriteBases?

mod_rewrite 和多个 RewriteBases?

如何将重写引擎的重写基础设置为

#access site via http://1.1.1.1/~sitename/
RewriteBase /~sitename/

当通过以下方式访问时http://1.1.1.1/~站点名称/并将其设置为

#access site http://www.sitname.com
RewriteBase /

当通过 www.sitname.com 访问时?

我希望有某种开关或条件。因为现在当我将 RewriteBase 设置为其中一个选项时,尝试使用其他 URL 访问该网站时该网站无法正常运行。

编辑:新站点同样存在问题....那么这无法解决吗?

答案1

将其放在您的配置中的标签内。类似下面的内容可能会起作用:

<Directory /path/to/document/root>
    RewriteBase /
    ....
</DirectoryMatch>

<Directory /home/sitename>
    RewriteBase /~sitename
    ....
</DirectoryMatch>

对于 ~sitename 情况,您可能希望将其放在 .htaccess 中,以便更轻松地为不同的用户定义它。

如果它们位于不同的虚拟主机中,您还必须指定

RewriteEnging On

对他们俩来说。

相关内容