htaccess и кодирование URL-адресов

#.htaccess #url #url-rewriting

#.htaccess #url #url-переписывание

Вопрос:

В настоящее время у меня есть это:

http://site.com/image/?x=100amp;y=70amp;image=https://site.com/image.jpg

Весь мой аудит yslow и Google говорит мне, что я не могу прокси-кэшировать URL-адреса с ‘?’ в нем. Итак, я изменяю его так, чтобы htaccess мог передавать параметры моему средству получения динамических изображений, но не может определить htaccess. Пока у меня есть:

http://site.com/thumb/https://site.com/image.jpg

Редактировать, забыл htaccess, который у меня есть до сих пор:

 RewriteRule ^thumb/(.*)?$ image.php?a=image=$1amp;x=180y=70amp;cropratio=1:1amp;quality=70 [QSA,L]
  

Я предполагаю, что это b / c без вопросительного знака, браузер думает, что это два URL-адреса, объединенные вместе, и это не параметр.

Есть мысли?

Спасибо, Стив

Ответ №1:

Можете ли вы попробовать:

 RewriteRule ^thumb/(.*)$ /image/?image=$1amp;x=180y=70amp;cropratio=1:1amp;quality=70 [QSA,L,NE,NC]
  
  • NE: Этот флаг используется для того, чтобы не кодировать исходный текст
  • NC: Для сравнения игнорируемых случаев

Комментарии:

1. Спасибо anubhava. Я делал это, и, похоже, это скорее проблема с косыми чертами PHP urlencoding как / вместо %2F. Я все еще пытаюсь найти хороший способ выполнить кодирование без кодирования, а затем выполнить замену строки.