Mod 重写带直通的子域的条件

Mod rewrite condition for subdomain with pass through

我想 运行 你这样做是因为我正在尝试完善 Apache mod 重写规则,该规则有效,但我快要疯了,因为我的文件路径被破坏了。

基本上,我设置了一个 mod 重写规则来将子域重定向到我的文档根目录中包含静态 index.html 文件的子目录。现有规则如下:

  RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$
  RewriteCond %{REQUEST_URI} !^/subdirectory/
  RewriteRule ^(.*)$ /subdirectory/ [PT]

重定向工作正常。但是,发生了什么,是我的图像被打破了。例如,带有以下 img 标签的“/subdirectory/img”对我不起作用:

   <img src="img/some-image.png" />

当我将图像移动到根目录并尝试直接调用图像减去 'img/' 路径时,同样的事情发生了。

我的重定向与此有关吗?或者我错过了什么?我的印象是使用 Pass Through [PT] 标志意味着资产链接会起作用。

非常感谢任何建议。感谢您的帮助!

马克.

这是因为您为图像使用了相对 url 路径。使用以 / 开头的绝对路径或在网页的头部添加以下基本标记:

<base href="/">

相关:

问题已解决。该规则非常有效,它只是 .htaccess 文件中的定位。我把它直接移到了下面:

  RewriteEngine     On

图像和 JS 资源现在加载正常。我还添加了一个缺失的 'L' 标志。

最终工作代码:

  RewriteEngine     On
  RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$
  RewriteCond %{REQUEST_URI} !^/subdirectory/
  RewriteRule ^(.*)$ /subdirectory/ [PT, L]