【发布时间】:2017-04-03 23:28:04
【问题描述】:
我遇到了一个复杂的 .htaccess 重定向问题。我正在尝试将旧站点关联公司重定向到第二个域,其结构可以如下:
- username.domain.com 重定向到 seconddomain.com/username
- domain.com/username 重定向到 seconddomain.com/username
- www.domain.com 需要重定向到 domain.com,而不是 secondomain.com/www
- domain.com 和子目录(即 css、js、img)不会被重定向
下面是我当前的 .htaccess,但是它错误地将 www.domain.com 重定向到 seconddomain.com/www 并且错误地将指向 js、css 和 img 目录的链接也重定向到了 seconddomain:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^www\.domain\.com/*$
RewriteRule ^(.*)$ https://seconddomain.com/$1/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com
RewriteRule ^(.*)$ https://seconddomain.com/%1/ [R=301,L]
RewriteCond %{HTTP_HOST} .*
RewriteRule ^(.+)$ https://seconddomain.com/$1/ [R=301,L]
</IfModule>
【问题讨论】:
-
在这里,接受我的投票(投赞成票)...为数不多的非常清晰且结构良好的 apache 重写问题之一 :) 我一有时间就可以解决您的解决方案 :D
-
问题:如何区分用户名和子目录?因为我得到了你的解决方案,除了 domain.com/username 和 domain.com/css,js 等的最后一部分。应该区分:/
-
我认为我无法区分用户名和子目录,因为可能有数千个用户名。但是,我可以设置有限数量的目录。因此,如果我设置了一组有限的目录,我可以以某种方式忽略这些目录而不忽略任何不匹配的内容吗?
标签: apache .htaccess redirect mod-rewrite