【问题标题】:How do I make a subfolder act like a document root using htaccess?如何使用 htaccess 使子文件夹像文档根目录一样?
【发布时间】:2016-06-17 08:39:31
【问题描述】:

站点位置:http://localhost/~username/website

该网站会加载大量带有绝对 URL 的图像,例如 /image/image.png。

我需要该请求才能转到: http://localhost/~username/website/image/image.png 代替 http://localhost/image/image.png.

我还需要它不影响任何其他文件夹或根文件夹。这样我也可以访问http://localhost/image/image.png

有没有办法让它在被这个子文件夹请求重定向时?

我希望像 /css/something.css 和 /image/image.png 这样的绝对引用指向 /subdirectory/css/something.css 和 /subdirectory/image/image.png。这样我就不必重写所有的绝对引用。所以,我不想修改根目录。

我想知道是否设置了一个不允许子目录“网站”无法访问根目录的虚拟主机。我从不需要此文件夹的 root 访问权限。

【问题讨论】:

    标签: php apache .htaccess virtualhost


    【解决方案1】:

    您可以在 root .htaccess 或 Apache/vhost 配置中使用此规则:

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !^/~
    RewriteRule ^(.*)$ ~username/website/$1 [L]
    

    【讨论】:

    • 我希望它可以在此子文件夹中有绝对引用添加 /~username/subfolder 的任何时候工作。所以 /include/style.css 将指向 /~username/subfolder/include/style.css。但是,它不会影响根域,因此我也可以拥有 /include/style.css。
    • 可以去掉文件类型依赖吗?
    • 我不想在根目录中有这个,因为我想有几个“网站”,每个网站都独立运作。是否可以在子文件夹 htaccess 中写一些东西?
    • 要使此规则生效,您必须将它放在 root .htaccess 或 Apache 配置中。否则你将不得不在images, css, is等目录中创建多个.htaccess
    • 是否可以设置 VirtualHost 以便 /subdirectory 完全独立于根目录?这样 /image 会转到 /subdirectory/image 吗?
    【解决方案2】:

    为什么需要使用/image/image.png?您为什么不只使用其中之一:

    http://localhost/~username/website/image/image.png (absolute)
    image/image.png (relative without preceding slash)
    

    【讨论】:

    • 该站点已经建成并且有很多这样的站点。我不想修改工作网站。这是一个本地主机克隆
    【解决方案3】:

    确保您被允许在您的网络服务器中使用 .htaccess 文件。看看这个如何在 apache 中启用: https://www.digitalocean.com/community/tutorials/how-to-use-the-htaccess-file

    在根目录或 ~username/website 目录中创建一个 .htaccess 文件然后将其写入您的 .htaccess 文件:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^~username/web/image/(.*) /image/$1
    

    【讨论】:

    • 我希望它适用于所有参考文献。我做 /image/image.png 和 /css/style.css 我不希望他们点击 / 但 /~username/project/ 代替。
    • 然后像这样添加另一个规则:RewriteRule ^~username/web/css/(.*) /css/$1
    • 这个会放在我的子目录还是根目录?
    猜你喜欢
    • 2018-08-30
    • 2019-04-30
    • 2021-12-20
    • 2018-02-17
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多