将文件夹重定向到其对应的子域

时间:2017-07-02 02:45:57

标签: apache .htaccess url redirect subdomain

尝试通过.htaccess配置apache,以便任何文件夹重定向到相应的子域

示例:

  

原始网址:http://zipcode.is/ro/010011   重定向到:http://ro.zipcode.direct/010011

将文件夹从zipcode.is/ro/010011移动到新域的子目录: ro .zipcode.direct / 010011(请注意,域名不同以及)。现在这个工作正常,但是一旦我更改国家ISO代码,它就不再工作了,例如的 zipcode.is/us/10128

2 个答案:

答案 0 :(得分:0)

您可以在站点根.htaccess文件中使用此规则:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^((?!www).+)\.domain\.com$ [NC]
RewriteRule ^((?!subdomains/).*)$ subdomains/%1/$1 [L,NC]

答案 1 :(得分:0)

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z]+)/(\d+)$ http://$1.zipcode.direct/$2 [R=301,L]

上面是最好和最短的解决方案(感谢Ruslan G。!),这是 Alexey S的第一种方法。不检查类型并且不太少优雅,留下它以防万一有人想进一步调整:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/(.*)$ http://$1.zipcode.direct/$2 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^.]*)$ http://$1.zipcode.direct [R=301,L]