htaccess重定向取决于domain.com/***/

时间:2017-03-14 08:16:48

标签: .htaccess redirect mod-rewrite

我得到了以下服务器结构:

  • 3个域指向完全相同的服务器根目录。
  • 每个子文件都有不同的子文件夹
  • 在每个子文件夹中,每年有多个子文件夹

SERVER

  • DOMAIN_1
    - SITE_1
    --- index.html
    - SITE_2
    --- index.html
    - SITE_3
    --- index.html
  • DOMAIN_2
    - SITE_1
    --- index.html
    - SITE_2
    --- index.html
    - SITE_3
    --- index.html
  • DOMAIN_3
    - SITE_1
    --- index.html
    - SITE_2
    --- index.html
    - SITE_3
    --- index.html

如何将每个域重定向到其依赖子文件夹子文件夹。

实施例

http://domain1.de/SITE_2/
应该导致/DOMAIN_1/SITE_2/index.html
但只显示:http://domain1.de/SITE_2/index.html

http://domain3.de/SITE_1/
应该导致/DOMAIN_3/SITE_1/index.html
但只显示:http://domain3.de/SITE_1/index.html

目前我只知道如何重定向,具体取决于添加的子文件夹名称。 但这仅适用于ONE Domain。每个域都具有完全相同的子文件夹名称,因此这不起作用。不知何故,它必须取决于DOMAIN_NAME。

RewriteRule ^SITE_2/(.*)$ /DOMAIN_1/SITE_2 [R=301,L]
这不起作用:
RewriteRule ^DOMAIN_2/SITE_2/(.*)$ /DOMAIN_1/SITE_2 [R=301,L]

1 个答案:

答案 0 :(得分:1)

你可以使用RewriteCond。在您的示例中,将RewriteRule限制为特定域,然后将所有请求重定向到正确的目录:

RewriteCond %{HTTP_HOST} domain1\.com$ [NC]
RewriteRule ^SITE_2/(.*)$ /DOMAIN_1/SITE_2/$1 [END]

RewriteCond %{HTTP_HOST} domain2\.com$ [NC]
RewriteRule ^SITE_1/(.*)$ /DOMAIN_2/SITE_1/$1 [END]

...

对所有域和文件夹重复此操作。

如果域中没有其他文件/文件夹不应重定向,您甚至可以简化RewriteRule。 (例如RewriteRule ^(.*)$ /DOMAIN_1/$1 [END]

干杯!