【问题标题】:mod_rewrite - Fixing absolute pathsmod_rewrite - 修复绝对路径
【发布时间】:2014-01-07 02:00:44
【问题描述】:

我在暂存环境中有一个站点,该站点位于虚拟目录中的 IP 上,例如:http://0.0.0.0/~drupal。问题是,我已经使用绝对路径设置了所有图像、css 和 js URI,例如:/path-to-image/img.jpg

由于站点位于目录中,/path-to-image/img.jpg 指向 http://0.0.0.0/path-to-image/img.jpg

而不是http://0.0.0.0/~drupal/path-to-image/img.jpg

我认为解决方案在于利用 mod_rewrite,但一直无法实施成功的解决方案。

旁注:我认为也可以在查看站点时修改本地计算机上的主机文件以获得所需的效果。但是,这不是一个选项,因为随着网站的变化,会有很多人查看该网站。

【问题讨论】:

    标签: linux apache .htaccess mod-rewrite


    【解决方案1】:

    您可以尝试将其添加到 DOCUMENT ROOT,即http://0.0.0.0/ 访问的目录:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/~drupal%{REQUEST_URI} -f
    RewriteRule ^(.*)$ /~drupal/$1 [L]
    

    【讨论】:

    • 谢谢,让我试试看。
    • 再想一想,这不会妨碍我在同一台服务器上为其他网站使用其他虚拟目录吗?
    • @Russell 会的,因此您要么需要将资产移出 ~drupal 目录并移至文档根目录,要么更改链接。但是,仅当请求实际存在于 `druppal 目录中 时才会发生重写
    • 好的,感谢您的所有意见。我决定只需要为每个站点使用专用 IP,而无需虚拟化。不过,我会继续将您的答案标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2012-10-27
    相关资源
    最近更新 更多