指向相同cPanel帐户的多个别名域共享相同的.htaccess文件。 只有在以下情况下,我需要一个特定于域的规则,将所有来自aliasdomain.comstream量redirect到https://www.domain1.com 。
HTTP_HOST目前是aliasdomain.com (有或没有WWW和http / https)
排除文件夹/medias/ – 它仍然可以从aliasdomain.com访问
排除所有*.jpg , *.jpeg , *.png和*.gif文件(即使文件位于aliasdomain.com根目录中)
总是redirect到https://www.domain1.com root,没有通配符redirect,也没有redirect到非ssl http
domain1.com需要被排除,所以如果相同的.htaccess文件是在domain1.com它不会干涉。
我试图适应在StackOverflow上find的各种代码片段,但失败了可怕得到它的工作:(我问了一个问题,但MODS告诉我要问ServerFault,所以我在这里…帮助将非常感激!
尝试以下操作:
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?aliasdomain\.com [NC] RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif)$ [NC] RewriteRule !^medias https://www.domain1.com/ [R=302,L]
RewriteRule 模式确保只在不请求启动/medias URL时处理规则。 ( !前缀否定了Apache mod_rewrite中的正则expression式。)
第一个RewriteCond指令检查被请求的主机是否只有aliasdomain.com (有或没有www子域)。 (所以, domain1.com自然排除在外)
第二个RewriteCond指令不包括对图像文件的请求。
如果这个目的是永久性的,并且只有当你确定它工作正常(因为301s被浏览器强制caching),则将302 (临时)redirect改为301 (永久)。
在testing之前清除浏览器高速caching,因为之前/错误的301可能已被高速caching。 (或者使用浏览器工具打开并禁用caching进行testing。)
我在那里问了一个问题,但mods告诉我,而不是在serverfault问
说实话,这个问题可能更适合专业网站pipe理员堆栈 ,而不是ServerFault! (虽然这不一定是关于StatckOverflow的主题,但您尝试的代码示例是强制性的。)