现在我的网站根目录中有一些文件夹(img,css,js和ico)。但是,我想将它们移动到名为public_html的新目录中。例如,代替图像文件夹位于/ img中,它将改为位于/ public_html / img中。但我这样做有问题,我怀疑这是我的.htaccess文件的问题。
Options -Indexes
Options +FollowSymLinks
RewriteEngine On
ErrorDocument 404 static/404.html
ErrorDocument 403 static/403.html
RewriteCond %{REQUEST_FILENAME} !-f
# ---------- Custom Routes ----------------
# -----------------------------------------
RewriteRule ^(js|css|img|ico)\/(.+)$ public_html/$1/$2
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA]
我可以访问/public_html/css/style.css就好了,但是当我添加第一个RewriteRule行并尝试访问/css/style.css时,它不起作用。
任何人都可以找出原因吗?谢谢。
答案 0 :(得分:1)
将[L]
标志添加到第一个规则。否则,它会跳至第二个规则并尝试将其传递到r=
到index.php
。由于public_html
RewriteCond %{REQUEST_FILENAME} !-f
访问它是有效的
RewriteRule ^(js|css|img|ico)\/(.+)$ public_html/$1/$2 [L]
# Update: Try using the RewriteCond before this line
# as well as where you have it earlier
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA]