如何使用htaccess使子文件夹像文档根一样?

时间:2016-03-03 20:09:47

标签: php apache .htaccess virtualhost

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

网站使用绝对网址加载大量图片,例如/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。这样我就不必重写所有绝对引用。所以,我不想修改根目录。

我想知道是否设置了一个不允许子目录“website”无法访问root的虚拟主机。我不需要从该文件夹进行root访问。

3 个答案:

答案 0 :(得分:0)

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

在root或 ~username / website 目录中创建.htaccess文件然后将其写入.htaccess文件:

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

答案 1 :(得分:0)

为什么需要使用/image/image.png?为什么你不会只使用其中一个:

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

答案 2 :(得分:0)

您可以在root .htaccess中使用此规则,也可以在Apache / vhost config中使用

RewriteEngine On

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