.htaccess htaccess—在一台共享服务器上托管多个域,

.htaccess htaccess—在一台共享服务器上托管多个域,,.htaccess,.htaccess,我有一个site1.com作为我的主站点。我在根目录“site1”和“site2”中创建了两个文件夹。我使用Htaccess将site1.com的流量重定向到文件夹“site1”。Site2与Site2.com一样使用目录“Site2” 现在,问题是因为site1是主站点,我可以通过site.com/site2访问site2。我可以使用什么重写来忽略site.com/site2,或者在访问site1.com/site2并且仍然允许site2.com工作时显示404 这是我的htaccess文件

我有一个site1.com作为我的主站点。我在根目录“site1”和“site2”中创建了两个文件夹。我使用Htaccess将site1.com的流量重定向到文件夹“site1”。Site2与Site2.com一样使用目录“Site2”

现在,问题是因为site1是主站点,我可以通过site.com/site2访问site2。我可以使用什么重写来忽略site.com/site2,或者在访问site1.com/site2并且仍然允许site2.com工作时显示404

这是我的htaccess文件

重新启动发动机 选项-多视图

RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteCond %{REQUEST_URI} !^/site1/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site1/$1
RewriteCond %{HTTP_HOST} ^(www.)?site1.com$ 
RewriteRule ^(/)?$ site1/index.php [L]

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
我的文件夹层次结构是

-root
    .htaccess 
    -site1 folder
          - index.php
    -site2 folder
          - index.php

由于godaddy的主要域设置,即使我访问site.com时,它会从site1文件夹加载信息,但如果我访问site1.com/site2,它会加载site2未经测试的代码:我相信您可以执行以下操作

RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteRule ^site2/(.*)$ http://site1.com/$1 [R=301]

这将(或应该)从
http://site1.com/site2/my/awesome/page.php
http://site2.com/my/awesome/page.php

未经测试的代码:我相信您可以做到以下几点

RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteRule ^site2/(.*)$ http://site1.com/$1 [R=301]

这将(或应该)从
http://site1.com/site2/my/awesome/page.php
http://site2.com/my/awesome/page.php

对于Godaddy上的类似问题,我选择了不同的方向

我没有只查找site1.com中的点击并重定向它们,而是使用以下命令将任何点击site2子文件夹/子域的请求发送到site2.com:

RewriteCond %{HTTP_HOST} !^site2\.com$ [NC]
RewriteRule ^(.*)$ http://site2.com/$1 [R=301,L]
现在,任何通过蠕虫进入该site1.com/site2子文件夹的请求都会被301发送到site2上的相应页面


我不认为我是一个专家,我会欢迎那些经验丰富的评论家。

< P>我在一个不同的方向上遇到了一个类似的问题。 我没有只查找site1.com中的点击并重定向它们,而是使用以下命令将任何点击site2子文件夹/子域的请求发送到site2.com:

RewriteCond %{HTTP_HOST} !^site2\.com$ [NC]
RewriteRule ^(.*)$ http://site2.com/$1 [R=301,L]
现在,任何通过蠕虫进入该site1.com/site2子文件夹的请求都会被301发送到site2上的相应页面


我不认为自己是一个专家,我会欢迎那些经验丰富的评论家。

这很好。如果他们访问那个页面,我可以抛出404个错误而不是重定向用户吗?这很好,我可以扔一个404错误而不是重定向用户如果他们访问那个页面?