Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   .htaccess.RewriteEngine - убрать символы (https://javascript.ru/forum/server/12412-htaccess-rewriteengine-ubrat-simvoly.html)

megapup 16.10.2010 13:25

.htaccess.RewriteEngine - убрать символы
 
мне нужно изменить ссылку с .../myfile.js.gz на .../myfile.js

делаю так
Код:

RewriteEngine on
rewritecond %{HTTP:accept-encoding} ^(gzip)        # если НЕ gzip
rewritecond %{REQUEST_FILENAME} \.js\.gz$        # И окончание .js.gz
rewriterule \.gz$                                # то убрать .gz

для rewriterule что нужно записать, подскажите, как правильно

B~Vladi 18.10.2010 11:10

Сам-то пытался разобраться? Сомневаюсь.
RewriteRule ^(.*\.js)\.gz$ $1 [QSA,L]

megapup 18.10.2010 11:28

пытался, но ничего не получалось, потом спросил здесь и снова пытался и сделал, но если бы ответили раньше, то сделал бы быстрее, и мне не пришлось бы биться головой как на твоей аватарке :)

Код:

RewriteEngine on
rewritecond %{HTTP:accept-encoding} !(gzip)
rewritecond %{REQUEST_FILENAME} \.js\.gz$
rewriterule (.*)\.js\.gz$ $1\.js

хз вроде работает

B~Vladi 18.10.2010 12:10

Цитата:

Сообщение от megapup
rewriterule (.*)\.js\.gz$ $1\.js

Так у тебя отбрасываются оба расширения.

И ещё:
rewritecond %{REQUEST_FILENAME} (.*)\.js\.gz$

megapup 18.10.2010 12:46

нуда, отбрасываются, но результат не изменяется и посему будем считать это ненужной перестраховкой :)

а в чем отличие \.js\.gz$ от (.*)\.js\.gz$ или даже ^(.*)\.js\.gz$ ?

B~Vladi 18.10.2010 13:09

Цитата:

Сообщение от megapup
а в чем отличие \.js\.gz$ от (.*)\.js\.gz$ или даже ^(.*)\.js\.gz$ ?

Ты про %{REQUEST_FILENAME}?
В твоем случае будут работать все варианты, но последний более точно описывает формат. При таком подходе мы можем сохранить подстроку, чтобы не делать этого ещё раз при rewriterule:

RewriteEngine on
rewritecond %{HTTP:accept-encoding} !(gzip)
rewritecond %{REQUEST_FILENAME} ^(.*\.js)\.gz$
RewriteRule ^.*$ %1 [QSA,L]

Чем сделаем правило легче для обработки.


Часовой пояс GMT +3, время: 14:07.