Перепишите строку запроса

Согласно Википедии:

.bat: первое расширение используется Microsoft для пакетных файлов. Это расширение может быть выполнено в большей части Microsoft Operating Systems, включая MS-DOS и большинстве версий Microsoft Windows.

.cmd: более новое .cmd расширение описано основанными на Windows NT системами как 'Командный сценарий Windows NT' и полезно, поскольку использование .cmd расширения, а не .bat расширения означает, что более ранние версии Windows не будут знать, как выполнить его, так, чтобы они не пытались и принимали команды за файлы стиля COMMAND.COM и сбой для выполнения модернизированных команд из-за отсутствия расширений команды, приводящих к сценариям, только частично выполняемым, который мог доказать повреждение (например; отказ проверить успешное копирование файла и затем удаление оригинала так или иначе).

Единственное известное различие между .cmd и .bat обработкой файла - то, что в .cmd файле переменная ERRORLEVEL изменяется даже на успешной команде, которая затронута Расширениями Команды (когда Расширения Команды включены), тогда как в .bat файлах переменная ERRORLEVEL изменяется только на ошибки.

Надеюсь, это поможет.

1
задан 7 August 2009 в 17:13
2 ответа

"1$" соответствует первой паре скобок на той же строке (RewriteRule); Вам нужно "%1", который соответствует первой паре скобок на/previous/строке - RewriteCond:

RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$
RewriteRule ^profile\.php$ http://www.newsite.com/utenti/%1 [R=301,L]

Лучший путь состоял бы в том, чтобы сделать это только с 1 строкой (RewriteRule), но Вы не можете сделать этого, если uid находится в QueryString.

1
ответ дан 4 December 2019 в 02:27
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{SERVER_NAME} ^oldsite.com$
        RewriteCond %{QUERY_STRING} uid=([0-9]+)
        RewriteRule ^/profile\.php http://newsite.com/utenti/%1 [NC,R=301,L]
</IfModule>

точка должна использовать %1, не 1$

0
ответ дан 4 December 2019 в 02:27

Теги

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