.htaccess вопросы - PullRequest
       6

.htaccess вопросы

1 голос
/ 25 октября 2010

Допустим, у меня есть следующий файл .htaccess:

RewriteEngine On

RewriteCond %{HTTP_COOKIE} name=value [NC]
RewriteRule ^image01.gif$ http://www.domain.tld/images/partner/image01.gif [NC,QSA]

RewriteCond %{HTTP_COOKIE} name=value [NC]
RewriteRule ^image02.gif$ http://www.domain.tld/images/partner/image02.gif [NC,QSA]

Что означают NC и QSA?

Кроме того, вместо повторения одного и того же RewriteCond дваждычтобы использовать его только один раз и применить к обоим RewriteRule s?

Наконец, если вышеуказанный .htaccess расположен по адресу http://www.domain.tld/images/, почему RewriteRule не нравится эта работа ?:

RewriteRule ^image02.gif$ /images/partner/image02.gif [NC,QSA]

Или, может быть, это?

RewriteRule ^image02.gif$ partner/image02.gif [NC,QSA]

Ответы [ 2 ]

4 голосов
/ 25 октября 2010

Квадратные скобки описаны в справочной странице RewriteRule :

'nocase | NC' (без регистра):

Это делает шаблон нечувствительным к регистру, игнорируя разницу между 'A-Z' и 'a-z', когда шаблон сопоставляется с текущим URL.

'qsappend | QSA' (добавление строки запроса):

Этот флаг заставляет механизм переписывания добавлять часть строки запроса строки подстановки к существующая строка вместо замены Это. Используйте это, когда вы хотите добавить больше данные в строку запроса через переписать править.


Насколько я знаю, директивы RewriteCond влияют на RewriteRule, которому они предшествуют. Если вы устанавливали правила в основном файле настроек, вы могли бы написать общие директивы в файле и включать несколько раз, но это не вариант для .htaccess файлов, извините.


Ваша директива работает для меня, хотя вы, вероятно, имеете в виду это:

RewriteRule ^image02\.gif$ /images/partner/image02.gif [NC,QSA]

Как вы это тестируете?

1 голос
/ 25 октября 2010

NC для No Case, то есть это может быть верхний или нижний регистр, и вы попадете на ту же страницу.

QSA для добавления строки запроса.Не совсем уверен в этом, однако быстрый поиск http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html проливает немного больше света на этот.

...