Apache 具有传递的子域的Mod rewrite条件

Apache 具有传递的子域的Mod rewrite条件,apache,.htaccess,mod-rewrite,drupal,acquia,Apache,.htaccess,Mod Rewrite,Drupal,Acquia,我想让你运行这个,因为我正试图完善一个Apache mod重写规则,这是可行的,但我快疯了,因为我的文件路径断了 基本上,我已经设置了一个mod rewrite规则,将一个子域重定向到docroot中包含静态index.html文件的子目录。现行规则如下: RewriteCond %{HTTP_HOST} ^subdomain\.mydomain\.com$ RewriteCond %{REQUEST_URI} !^/subdirectory/ RewriteRule ^(.*)$

我想让你运行这个,因为我正试图完善一个Apache mod重写规则,这是可行的,但我快疯了,因为我的文件路径断了

基本上,我已经设置了一个mod rewrite规则,将一个子域重定向到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" />

当我将图像移动到root,并尝试直接调用图像减去'img/'路径时,也会发生同样的情况

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

非常感谢您的建议。谢谢你的帮助


标记。

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

<base href="/">

相关的:

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

<base href="/">

相关的:
问题已解决。该规则工作得很好,它只是.htaccess文件中的定位。我把它直接移到下面:

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

最终工作代码:

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

问题解决了。该规则工作得很好,它只是.htaccess文件中的定位。我把它直接移到下面:

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

最终工作代码:

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

恐怕没有这么简单。尽管我希望是这样。无论我使用什么路径,这些图像都会导致500服务器错误。我认为它更多地与.htaccess文件有关。找不到subdomain.mydomain.com/img/some-image.png。恐怕没有这么简单。尽管我希望是这样。无论我使用什么路径,这些图像都会导致500服务器错误。我认为它更多地与.htaccess文件有关。未找到subdomain.mydomain.com/img/some-image.png。