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

Redirecting folders to their corresponding subdomains

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

示例:

Original URL: http://zipcode.is/ro/010011 redirects to: http://ro.zipcode.direct/010011

将文件夹从 zipcode.is/ro/010011 移动到新域的子目录:ro.zipcode。 direct/010011(注意域也不同)。现在这是可行的,但是一旦我更改了国家/地区 ISO 代码,它就不再适用了,例如邮政编码。is/us/10128

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

RewriteEngine on

RewriteCond %{HTTP_HOST} ^((?!www).+)\.domain\.com$ [NC]
RewriteRule ^((?!subdomains/).*)$ subdomains/%1/ [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z]+)/(\d+)$ http://.zipcode.direct/ [R=301,L]

以上是最佳和最短的解决方案(感谢 Ruslan G.!)Alexey S. 的第一种方法没有' t 检查类型并且不太优雅,留下它以防有人想要进一步调整:

RewriteEngine on

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

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