gpt4 book ai didi

apache - 修改两个站点的htaccess文件

转载 作者:行者123 更新时间:2023-12-02 08:19:34 24 4
gpt4 key购买 nike

我的网络主机将我的“主”域名指向根 www 文件夹。该站点的 Web 文件位于“www/app/webroot”文件夹中。我目前使用 htaccess 文件中的以下内容启动并运行了该网站:

RewriteBase /
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]

我正在尝试为同一网站启动一个开发网站。我在 www 文件夹中创建了一个名为“dev”的文件夹。因此,该文件夹的 Web 文件位于:“www/dev/app/webroot” 我有一个指向 dev 文件夹的子域。当我在 dev 文件夹中使用与上面相同的 htaccess 时,它不起作用,因为(我相信)它继承了根 www 文件夹的设置。当页面加载时,它只是显示空白。如何设置我的 htaccess 文件以允许这两个网站?

预先感谢您的帮助!我显然是这方面的新手。

最佳答案

所以我们会尝试清理这些东西:-)

避免使用.htaccess。目录/foo/bar 中 .htaccess 中的所有设置都可以在 apache 配置中设置为目录设置(如果您在 apache conf 上提供有限访问,则 .haccess 很有用,如果您拥有服务器,则不要使用它)。

<Directory /foo/bar>(...)</Directory>

然后您可以使用基于命名的虚拟主机访问您的站点。验证您有此选项:

NameVirtualHost *:80

当你拥有它时,美好的事情就可以开始了。这将是您的第一个应用程序的虚拟主机:

<VirtualHost *:80>
ServerName app
ServerAlias www.app.somwhere.com
ServerAlias app.somwhere.com
DocumentRoot /www/app/webroot
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /www/app/webroot>
Options Indexes FollowSymLinks
# this prevent.htaccess reading, remove if you want .htaccess
AllowOverride None
# allow web access
Order allow,deny
allow from all
</Directory>
</VirtualHost>

大多数 apache 设置可以在此处定义。仅适用于您的第一个应用程序。 Apache 将为站点名称“app”、“www.app.somwhere.com”或“app.somwhere.com”完成的所有请求提供此配置。您可以定义很多别名(ServerAlias),但只能定义一个名称(ServerName)。

然后,如果您进入浏览器并输入 http://app/您的浏览器找不到服务器,因此请在/etc/hosts 中设置它。这是每个想要访问您的应用程序的人都应该在主机文件中拥有的内容,直到您获得真正的 DNS(假设您的第一个应用程序是 app.somwhere.com,第二个应用程序是 foo.somwhere.com,92.128.52.226 是您的外部 IP) :

127.0.0.1 app.somwhere.com app foo foo.somewhere.com
92.128.52.226 app.somwhere.com app foo foo.somewhere.com

现在让我们为您的第二个应用程序添加另一个虚拟主机:

<VirtualHost *:80>
ServerName foo
ServerAlias www.foo.somwhere.com
ServerAlias foo.somwhere.com
DocumentRoot /www/foo/webroot
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /www/foo/webroot>
Options Indexes FollowSymLinks
# this prevent.htaccess reading, remove if you want .htaccess
AllowOverride None
# allow web access
Order allow,deny
allow from all
</Directory>
</VirtualHost>

等等。不要忘记重新启动你的 apache。没有重写规则。良好的虚拟主机是良好配置的第一步,您将能够根据所使用的名称定义规则、目录或位置特定的内容。甚至可以使用 php_value 设置每个虚拟主机的 php 配置,而不是在 php.ini 上设置全局共享配置。

类型

apache2 -S

要获取虚拟主机列表,您会看到第一个是“默认”主机,如果 apache 不理解所请求站点的名称,它将提供此默认主机(因此您可以添加一个顶部的特定虚拟主机来处理这些情况)。

关于apache - 修改两个站点的htaccess文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4594800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com