如何将图像和其他静态文件的URL重写到特定文件夹,即到目前为止我正在使用它:
RewriteRule \.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt)$ /MyFolder/$1
但它不起作用,
请帮忙。
------------------- update ---------------------
好的,现在我有:
RewriteCond %{HTTP_HOST} ^(www.)?exmpale.com$
RewriteCond %{REQUEST_URI} !^/exmpale.com/
RewriteRule ^(.*\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt))$ /exmpale.com/$1
RewriteCond %{HTTP_HOST} ^(www.)?exmpale.com$
RewriteRule !\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt)$ /exmpale.com/index.php
所以图像重定向到exmpale文件夹工作但现在我想重写其他所有的index.php,上面的解决方案到目前为止还没有工作。
欢呼声, /马尔钦
答案 0 :(得分:4)
也许这就是你想要的:
RewriteRule ^(.*\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt))$ /MyFolder/$1
或者也许这样:
RewriteRule ([^/]*\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt))$ /MyFolder/$1
如果这些都不是你想要的,请添加一些你想要的输入/输出的例子。
对于您的更新,您可能希望在此规则匹配时使用L
标志来停止规则处理。例如:
RewriteCond %{HTTP_HOST} ^(www.)?exmpale.com$
RewriteCond %{REQUEST_URI} !^/exmpale.com/
# The next line is long. Scroll to the end!
RewriteRule ^(.*\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt))$ /exmpale.com/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?exmpale.com$
RewriteRule .* /exmpale.com/index.php
答案 1 :(得分:0)
您没有捕获初始请求。请尝试以下方法:
RewriteRule (.*)\.(woff|ttf|svg|js|ico|gif|jpg|png|css|htc|xml|txt)$ /MyFolder/$1.$2
这将获得以指定的扩展名结尾的所有内容,并在/MyFolder/
下重定向。例如:/something/image.jpg
现在将转到/MyFolder/something/image.jpg
注意:通过添加检查文件类型的条件,可能有更好的方法。