我在一个名为www/sub_dir
. 该sub_dir
目录中的索引文件调用img/logo.png
.
我可以只放置一个.htaccess
将在www/img
目录中而不是文件中查找的文件,而不是为我的所有图像使用完整路径www/sub_dir/img
吗?
在 /www/sub_dir/img/ 目录中试试这个 .htaccess 文件
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)$ /www/img/$1 [QSA,L]
通过启用 mod_rewrite 和 .htaccess httpd.conf
,然后将此代码放在您.htaccess
的DOCUMENT_ROOT
目录下:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule /(img/.+)$ $1 [NC,L]
如果 www 是您的 web 根目录,您可以/
在图像的 uri 上放置一个前导。例如,如果您的图像位于http://www.yoursite.com/img/logo.png
,则您可以放置网站上的任何子目录/img/logo.png
来访问它。领先/
只是意味着“顶级”。所以/img/logo.png
意思是“顶层,然后是img
文件夹,然后是文件logo.png
”
<base href="...">
如果适用,请考虑使用。这样,无论您在哪个子目录中,您仍然可以使用img/
,css/
等。
如果这是单个特定文件夹,请考虑使用symlinks
. 只需ln -s ../img .
添加Options +FollowSymLinks
到 apache 配置或 .htaccess。
您可以轻松地使用/img/logo.png
或../img/logo.png
在子文件夹中的文件中...
如果上述建议均不可行,请将以下重写规则添加到您的 Web 根目录 .htaccess 中:
RewriteEngine on
RewriteBase /
RewriteRule ^sub_folder/(img/.*) $1 [L]