siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009
EasyMoney:
Какой бы субдомен не ввели и какого бы уровня, он бы перенаправлял через 301 редирект на главный домен без “www” – на mysite.com

Добавить после RewriteEngine ON

RewriteCond %{HTTP_HOST} \.(mysite\.com)$

RewriteRule ^ http://%1/? [R=301,L]

Ничего не понятно, какие страницы каким должны соответствовать? Советую на будущие, если не владеете регулярными выражениями, приводить пару реальных примеров.

навеяно кодом выше и примером с предыдущей странице


$h = array('a', 'b', 'b', 'b', 'b', 'b', 'c', 'a');
$m = array('a', 'b');
function check($m, &$h){
$v = array_count_values($h);
$r = array_intersect_key($v, array_fill_keys($m, 1));
$c = (! empty($r)) ? min($r) : 0;

if(! $c) return $c;

foreach($m as $k){
$i = 0;
foreach($h as $_k => $v){
if($v == $k){
$i++;
if($i > $c){
unset($h[$_k]);
}
}
}
}
return $c;
}
echo check($m, $h);

RewriteCond %{THE_REQUEST} ^[A-Z]{3,6}\ /(index\.php)?\ HTTP

RewriteRule ^ / [R=301,L]

Или

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^index\.php$ / [R=301,L]

EasyMoney:
но он работает некорректно: субдомены первого уровня просто не работают

Ну правильно

EasyMoney:
Редирект субдоменов любого уровня на главную

А как бы хотели чтобы он работал?

dkameleon:
должно быть 1, а ваш код дает 5.

Почему 1? Там пять элементов встречаются. Или я не понял суть задачи.

Тогда не понимаю почему у ТСа


//Ищем пары 'a', 'b' расположенные в любом порядке в массиве $h.
//$result должен быть: 2
//Потому что пара a, b встречается 2 раза. А непарная оставшаяся b - не подходит.


RewriteEngine on

RewriteCond %{QUERY_STRING} ^((?:id_product|id_category|id_cms)=[0-9]+)$
RewriteRule ^(product|category|cms)\.php /index.php?%1&controller=$1 [R=301,L]

RewriteCond %{QUERY_STRING} ^(id_manufacturer=[0-9]+(?:&p=[0-9]+)?$
RewriteRule ^(manufacturer)\.php$ /index.php?%1&controller=manufacturer [L,R=301]
Gaaarfild:
Этот код будет всегда возвращать количество элементов в массиве $m.

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


function check($m, $h) {
$intersections = array_unique(array_intersect($h, $m));
return count($intersections);
}

- Юзер выбирает номер договора, попадает на страницу

- при генерации этой страницы выбираете записи из бд по номеру договора.

- ПРОФИТ

Всего: 6568