.htaccess 和 HTTP_HOST
.htaccess and HTTP_HOST
我们有一个 Wordpress 多站点安装,每个站点都有自己的域:
出色的训练
天马行空
感知分析
在 htdocs 文件夹中,我们有一个子文件夹,其中包含我们用于其中一个站点的资产,该文件夹名为 /Aj-Isle/,非 wordpress 资产应该用于 https://fantastic-training.com/ 站点。
但是,该文件夹可用于所有 3 个域,这是我们不希望出现的行为。因此,尝试在所有 3 个域中查看文件 DOMAIN/Aj-Isle/south.png 都有效。
https://fantastic-training.com/Aj-Isle/south.png
https://fantastic-thinking.com/Aj-Isle/south.png
https://perceptionprofiling.com/Aj-Isle/south.png
有谁知道我们如何使用 htdocs 文件夹中的 .htaccess 文件来限制它,以便 Aj-Isle 文件夹仅在请求 https://fantastic-training.com/ 域时可用?
我觉得跟HTTP_HOST这个变量有关系?
基本上我知道在英语中我想创建的规则是这些...
如果您是 /Aj-Isle/ 的入站用户并且不请求 https://fantastic-training.com/Aj-Isle/ 然后重定向到目标域的根目录
如果您是 /limesurvey/ 的入站用户而不是请求 https://perceceptionprofiling.com/limesurvey/ 然后重定向到目标域的根目录
我们在 htdocs 中的 .htaccess 文件目前看起来像这样...
# BEGIN WordPress
<IfModule mod_rewrite.c>
AllowOverride All
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
提前感谢您提供的任何帮助或见解。
史蒂夫 H-B
您可以使用 RewriteCond
检查主机名
RewriteCond %{HTTP_HOST} !fantastic-training.com
RewriteRule ^Aj-Isle / [R,L]
这将检查请求的路径是否以 Aj-Isle
开头。如果没有,请继续执行以下规则。
如果确实以 Aj-Isle
开头,则根据 fantastic-training.com
检查请求的主机。如果请求的主机是 不是 fantastic-training.com
,则将客户端重定向到根文件夹 (/
)。
CondPattern is usually a perl compatible regular expression, but there is additional syntax available to perform other useful tests against the Teststring:
- You can prefix the pattern string with a '!' character (exclamation mark) to negate the result of the condition, no matter what kind of CondPattern is used.
我们有一个 Wordpress 多站点安装,每个站点都有自己的域:
出色的训练
天马行空
感知分析
在 htdocs 文件夹中,我们有一个子文件夹,其中包含我们用于其中一个站点的资产,该文件夹名为 /Aj-Isle/,非 wordpress 资产应该用于 https://fantastic-training.com/ 站点。
但是,该文件夹可用于所有 3 个域,这是我们不希望出现的行为。因此,尝试在所有 3 个域中查看文件 DOMAIN/Aj-Isle/south.png 都有效。
https://fantastic-training.com/Aj-Isle/south.png
https://fantastic-thinking.com/Aj-Isle/south.png
https://perceptionprofiling.com/Aj-Isle/south.png
有谁知道我们如何使用 htdocs 文件夹中的 .htaccess 文件来限制它,以便 Aj-Isle 文件夹仅在请求 https://fantastic-training.com/ 域时可用?
我觉得跟HTTP_HOST这个变量有关系?
基本上我知道在英语中我想创建的规则是这些...
如果您是 /Aj-Isle/ 的入站用户并且不请求 https://fantastic-training.com/Aj-Isle/ 然后重定向到目标域的根目录
如果您是 /limesurvey/ 的入站用户而不是请求 https://perceceptionprofiling.com/limesurvey/ 然后重定向到目标域的根目录
我们在 htdocs 中的 .htaccess 文件目前看起来像这样...
# BEGIN WordPress
<IfModule mod_rewrite.c>
AllowOverride All
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
提前感谢您提供的任何帮助或见解。 史蒂夫 H-B
您可以使用 RewriteCond
RewriteCond %{HTTP_HOST} !fantastic-training.com
RewriteRule ^Aj-Isle / [R,L]
这将检查请求的路径是否以 Aj-Isle
开头。如果没有,请继续执行以下规则。
如果确实以 Aj-Isle
开头,则根据 fantastic-training.com
检查请求的主机。如果请求的主机是 不是 fantastic-training.com
,则将客户端重定向到根文件夹 (/
)。
CondPattern is usually a perl compatible regular expression, but there is additional syntax available to perform other useful tests against the Teststring:
- You can prefix the pattern string with a '!' character (exclamation mark) to negate the result of the condition, no matter what kind of CondPattern is used.