@Hugger

Что означает знак $ в файле htaccess?

RewriteRule flymail-([0-9]+).png core/flymail.php?id_mess=$1
RewriteRule ^login.html$ index.php?op=account&act=login
RewriteRule ^logout.html$ index.php?op=account&act=logout
RewriteRule ^register.html$ index.php?op=account&act=register
RewriteRule ^newpass.html$ index.php?op=account&act=newpass
RewriteRule ^accept,([0-9]+),([-a-zA-Z0-9_=]+)$ index.php?op=account&act=newpass&accept=yes&usid=$1&hash=$2
RewriteRule ^accept_rules.html$ index.php?op=cpanel&act=accept_rules
RewriteRule ^profile.html$ index.php?op=cpanel&act=profile
RewriteRule ^cpanel.html$ index.php?op=cpanel
RewriteRule ^cpanel-p([0-9]+).html$ index.php?op=cpanel&page=$1
RewriteRule ^cpanel-([0-9]+)-edit.html$ index.php?op=cpanel&group=edit&id_mess=$1
RewriteRule ^cpanel-([0-9]+)-del.html$ index.php?op=cpanel&group=del&id_mess=$1
RewriteRule ^cpanel-([0-9]+)-prolongation.html$ index.php?op=cpanel&group=prolongation&id_mess=$1

Как вы видите знак доллара стоит в самом конце, знаку $ передается значение которое было отправлено через RewriteRule ^...?
  • Вопрос задан
  • 2132 просмотра
Пригласить эксперта
Ответы на вопрос 2
@ShamblerR
$ может использоваться в двух вариантах
1. конец строки например ^строка$ начало-строка-конец
2. когда вы заменяете текст
например:

ненужная_часть_строки(нужная_часть_строки)опять_ненужная
в таком случае
$1 будет возвращять содержимое первых скобок, каждые следующие скобки в регулярном выражение будут давать следующий бакс на выходе
в таком варианте будет следуюеее
^cpanel-([0-9]+)-prolongation.html $1 получите урл соответствующий суловию [0-9]+
Так же нужно понимать что не все редиректы могут работать с регулярками. например класичесий 301 просто строковы редирект, в его случае он будет возвращять цифру $1 а так же будет считать $ в конце обычным $
если же вы делаете конструкцию двухуровневую

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

То обратите внимание что в конечном урле присутствует $ и %1 поскольку $1 это первая группа в RewriteRule, а %1 в RewriteCond
Больше о баксах добавитьнечего
Ответ написан
Комментировать
Ну что бы в тексте знак доллара взять его надо экранировать regexr.com/3bc7r без экрана только конец строки
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы