В левой части Вы можете проверить только то, что до знака ?, т.е.
RewriteRule работает в вашем случае только с page.php, да и здесь желательно заэкранировать точку, поскольку в левой части находится регулярное выражение, а в нем точка означает "любой символ"
А вот чтобы проверить то что после знака ? (строку запроса), нужно это делать в условии RewriteCond и используя переменную %{QUERY_STRING}
для RewriteCond уже в правой части регулярное выражение стоит, и в нем можно использовать соответствующие спецсимволы регулярок (^ - начало строки, $ - конец строки и т.д.)
Т.е. для вашего примера должно быть примерно так
RewriteCond %{QUERY_STRING} ^10$
RewriteRule ^page\.php$ index.php?newsid=5 [L]
А вообще применение RewriteRule это довольно сложное занятие, много тонкостей в этом есть
Поищите в поисковиках такое "RewriteRule htaccess", почитайте
регулярные выражения perl
Для разнообразия последнее слово можете заменить на PHP или javascript
Ссылки можно перенаправить только с доступного Вам сайта.
Если у Вас его прикрыли, где Вы намерены размещать редирект?
Ragnarok, кажется такой вариант решит все Ваши вопросы
preg_match_all('#<img[^>]+src\s*=\s*(["\'])([^\s"\']+)\\1#im',$content,$imgurls);
print '<pre>';
print_r($imgurls[2]);
print '</pre>';
iCospi, используйте для формирования даты (путем сложения/вычитания единиц времени, например дней , часов, минут и т.д.) функцию mktime
Кстати на странице по этой ссылке вверху есть ссылка на "Функции для работы с датой и временем".
Посмотрите.
looner, поищите в сети скрипт maxheight.js
он как раз применяется для выравнивания дивов по высоте с использованием кажется класса дивов, в конечном итоге имитируя таблицу
Ink-developer,
попробуйте такой вариант
preg_match_all('#(^|\n).*(\n|$)#m',$file,$match);
print_r($match[0]);
фактически это получается преобразование содержимого переменной $file в массив строк
функция preg_match вернет только первую строку.
Может проще воспользоваться функцией чтения из файла file ?
Она сразу возвращает массив строк.
if (preg_match('#Apos|Rakos|Azuli|Undafisa#im',$rey[0])) {$strana = 'Испания';}
//здесь получаете массив строк с URL, я беру из строки, Вы можете читать в $arr_text прямо из файла функцией file
$text='
http://yandex.ru/543
http://yandex.ru/t54rt5
http://google.com/123
http://yandex.ru/t534r5t
http://yandex.ru/е54ке
';
$text=preg_replace('#'.chr(13).'#m',chr(10),$text);
$arr_text=preg_split('#'.chr(10).'+#m',$text);
//Здесь делается группировка адресов по домену
$arrDomens=array();
foreach ($arr_text as $value){
if(preg_match('#http://([a-z0-9.-]+)#',$value,$match)){
if(!isset($arrDomens[$match[1]])){
$arrDomens[$match[1]]=array();
}
array_push($arrDomens[$match[1]],$value);
$arr_d=array_keys($arrDomens);
$num_file=0;
// здесь делается вывод в файлы адресов с уникальными доменами
do {
$n=0;
$str_file='';
foreach ($arr_d as $value){
if(isset($arrDomens[$value][$num_file])){
//если будете сохранять в файле, можете добавлять в конец не '<br />', а допустим chr(13).chr(10)
$str_file.=$arrDomens[$value][$num_file].'<br />';
++$n;
if($n){
++$num_file;
//здесь вместо вывода на экран можете сохранить в файл, используя в его имени $num_file
print 'файл номер '.$num_file.'<br />';
print $str_file;
print '<br />';
} while ($n>0);
Результат получается такой
файл номер 1
файл номер 2
файл номер 3
файл номер 4
использование сложных реврайтов это обычно танец с бубном :)
Нет возможности проводить эксперименты с поддоменами,
тестировал на модели подобного реврайта, и обнаружил что при наличии
предпоследней строки типа
RewriteCond $1 \.php$
значение %1 записывается пустым (значением city_link получается пустая строка),
но если поднять эту строку чуть выше, то все ОК
(только не спрашиваете меня почему !)
Пробуйте такой вариант, может сработать
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^([a-z-]+).site.ru
RewriteRule (.*) city.php?city_link=%1 [L]