mod_rewrite: удалить строку запроса из URL?

В make-файле Microsoft NMake можно использовать истинные heredocs UNIX , так как владелец потока запросил их. Например, это явное правило для создания файла Deploy.sed :

Deploy.sed:
    type << >$@
; -*-ini-generic-*-
;
; Deploy.sed -- Self-Extracting Directives
;

[Version]
Class=IEXPRESS
SEDVersion=3
    .
    .
[Strings]
InstallPrompt=Install $(NAME)-$(VERSION).xll to your personal XLSTART directory?
DisplayLicense=H:\prj\prog\XLL\$(NAME)\README.txt
    .
    .
<<

clean:
    -erase /Q Deploy.sed

, где < < раскрывается во временное имя файла, которое NMake создает в муха при выполнении правила. То есть, когда Deploy.sed не существует. Приятно, что переменные NMake тоже расширяются (здесь переменные NAME и VERSION ). Сохраните это как makefile . Откройте DOS-ящик в каталоге makefile и используйте:

> nmake Deploy.sed

для создания файла и:

> nmake clean

для его удаления. NMake является частью всех версий Visual Studio C ++, включая Express-издания.

30
задан Philip Pittle 18 October 2014 в 14:29
поделиться

2 ответа

Это должно сделать это:

RewriteEngine    On
RewriteCond      %{QUERY_STRING}    ^page=1$
RewriteRule      (.*)               $1?     [R=permanent]

Построчно:

  1. Вы включаете функцию перезаписи.
  2. Вы указываете в качестве условия («оператор if»), что строка запроса должна быть точно page = 1 для применения следующих правил.
  3. Затем вы указываете правило, которое говорит: заменить весь путь (. *) Самим собой ($ 1), но сделать строку запроса пустой (?) И сделать результат постоянным перенаправлением (301).

Если вы хотите, чтобы перенаправление было временным (302), вы можете просто удалить часть = постоянный . Временно перемещен - значение по умолчанию для флага R .

43
ответ дан 27 November 2019 в 23:20
поделиться

Вы также можете использовать флаг QSD (Query String Discard), чтобы перенаправить куда-то без передачи строки запроса.

22
ответ дан 27 November 2019 в 23:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: