У меня есть несколько изображений на моем сервере, которые всегда создавались на лету и запрашивались прямо здесь: http://www.mydomain.com/en/images.png?domain=test.com
http://www.mydomain.com/en/images.png?domain=test.com
Теперь они кешируются в http://www.mydomain.com/images/test.com.png
http://www.mydomain.com/images/test.com.png
Я попробовал следующее правило в моем htaccess, но оно не работает:
RewriteRule ^(en|de)?/images.png\?domain=(.*) /images/$2.png [QSA,L]
Любая подсказка, что не так?
только что нашел решение:
RewriteCond %{QUERY_STRING} ^domain=(.*)$ ^ эта строка отсутствовала для перехвата строки запроса RewriteRule ^(en|de)?/images.png$ /rating-images/%1.png [QSA]
RewriteCond %{QUERY_STRING} ^domain=(.*)$
RewriteRule ^(en|de)?/images.png$ /rating-images/%1.png [QSA]
Строка запроса не является частью того, что вы неявно сравниваете с RewriteRule, вам нужен RewriteCond, чтобы сопоставить / захватить ее для использования в вашей замене:
http://wiki.apache.org/httpd/RewriteQueryString
На первый взгляд, вам, вероятно, нужно экранировать знак вопроса, который является частью URL.