将子目录重定向到没有域扩展名的子域

时间:2019-03-13 15:12:41

标签: apache .htaccess redirect

我有一个域和一个子域。我的子域公用文件夹发布在主域网站的子目录中。 我不希望在访问主要网站时访问子目录,因此我已经在主要htaccess文件中设置了大规模重定向。

重定向在我用于开发的本地主机上运行良好,但当然不会在生产环境中使用,因为我的本地主机域扩展名是.local,而我的远程主机扩展名(发布用于生产)是{{ 1}}。

我不想每次都要进行更改时都编辑我的.com文件,因为我是人,而且会犯错误,所以我想避免配置错误而破坏我的产品网站。

我正在寻找一个可能的解决方案,如果有的话,可以将子目录重定向到子域而不提及域扩展名,以便我可以将一个.htaccess文件用于prod和dev模式。

我用于开发的规则是以下两行:

.htaccess

如何摆脱RewriteCond %{HTTP_HOST} ^(www\.)?my-website\.local$ [NC] RewriteRule ^blog/(.*)$ http://blog.my-website.local/$1 [L,NC,R=301] ,使这些规则在prod和dev主机中均有效?

1 个答案:

答案 0 :(得分:0)

您可以使用捕获组来匹配和捕获localcom,并在目标中使用向后引用:

RewriteCond %{HTTP_HOST} ^(?:www\.)?my-website\.(local|com)$ [NC]
RewriteRule ^blog/(.*)$ http://blog.my-website.%1/$1 [L,NC,R=301,NE]