我有一个域和一个子域。我的子域公用文件夹发布在主域网站的子目录中。 我不希望在访问主要网站时访问子目录,因此我已经在主要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主机中均有效?
答案 0 :(得分:0)
您可以使用捕获组来匹配和捕获local
或com
,并在目标中使用向后引用:
RewriteCond %{HTTP_HOST} ^(?:www\.)?my-website\.(local|com)$ [NC]
RewriteRule ^blog/(.*)$ http://blog.my-website.%1/$1 [L,NC,R=301,NE]