我的PHP站点设置了每个站点的文件夹(例如Login),它有一个Index.php文件和site-specfic资产。但是,每个页面都需要的一些资产存储在最高级别的“资产”文件夹中(这有意义吗?)。
我玩过.htaccess并得到了这段代码
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ http://janberktold.com/Assets/$1 [R=301,L]
但是,我的问题是:它重定向
本地主机/登录/ test.css
到
本地主机/资产/登录/ test.css
而不是
本地主机/资产/ test.css
如何让我的服务器重定向到正确的路径?
答案 0 :(得分:3)
试试这个
RewriteEngine on
RewriteBase /
# Rewrite if the file does not exists
RewriteCond %{REQUEST_FILENAME} !-f
# Rewrite only if the URI does not starts with Assets
RewriteCond %{REQUEST_URI} !^/Assets
# Rewrite any assets file
RewriteRule ([^/]*).(css|js|png|jpe?g)$ Assets/$1.$2 [L]
这应该将所有资产文件localhost/dir/file.css
或localhost/dir/dir2/file.css
重写为localhost/Assets/file.css
答案 1 :(得分:1)
将规则替换为:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?:[^/]*/)*([^/.]+\.(?:jpe?g|gif|bmp|png|tiff|css|js))$ /Assets/$1 [R=301,L,NC]