1

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

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

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

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

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

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

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

任何意见是极大的赞赏。谢谢你的帮助!

标记。

4

2 回答 2

0

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

<base href="/">

相关: Seo 友好 URL css img js 不工作

于 2016-11-07T05:31:38.827 回答
0

问题解决了。该规则完美运行,它只是 .htaccess 文件中的定位。我把它直接移到了下面:

  RewriteEngine     On

图像和 JS 资产现在可以正常加载。我还添加了一个缺失的“L”标志。

最终工作代码:

  RewriteEngine     On
  RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$
  RewriteCond %{REQUEST_URI} !^/subdirectory/
  RewriteRule ^(.*)$ /subdirectory/$1 [PT, L]
于 2016-11-08T02:44:49.533 回答