Вы можете удалить файл .htaceess и дать системе создать новый (пустой или базовый) файл. Возможно, некоторые строки, которые вы добавили, являются неправильными инструкциями или что-то еще внутри, вызывает проблему. Затем вы можете добавить строку за строкой из вашего старого файла .htaccess , чтобы узнать, что вызвало проблему.
Это сработало для меня. Линии, указывающие, что машина не отображает расширения php, были проблемой в моем случае ( RewriteCond и RewriteRule ). Мой старый файл .htaccess отлично работал на общем сервере, но эта проблема возникла, когда я переключился на VPS.
Вы можете сделать это с помощью разделения и реверса следующим образом:
my $str="1:2:3:4:5";
my ($a,$b)=split(':',reverse($str),2); # reverse and split.
$a = reverse($a); # reverse each piece.
$b = reverse($b);
($a,$b) = ($b,$a); # swap a and b
Теперь $ a
будет 1: 2: 3: 4
и $ b
будет 5
.
Гораздо более простой и понятный способ - использовать регулярное выражение, как это сделал Марк в своем ответе.
Вы можете использовать сопоставление с образцом вместо split ()
:
my ($a, $b) = $str =~ /(.*):(.*)/;
Первая группа захватывает все до последнего появления ':'
жадно, а вторая группа захватывает остальных.
В случае, если ':'
не присутствует в строке, Perl достаточно умен, чтобы обнаружить это и не найти совпадение без какого-либо возврата.
you can also use rindex()
eg
my $str="1:2:3:4:5";
$i=rindex($str,":");
$a=substr($str,0,$i);
$b=substr($str,$i+1);
print "\$a:$a, \$b: $b\n";
output
$ perl perl.pl
$a:1:2:3:4, $b: 5