gormarket

gormarket
Рейтинг
47
Регистрация
29.12.2010

В файле .htaccess в корневом каталоге основного сайта

сразу после первых же встретившихся строк

RewriteEngine On

RewriteBase /

добавьте такие строки

RewriteCond %{ENV:REDIRECT_RVR} ^yes$

RewriteRule .* - [L]

RewriteCond %{HTTP_HOST} ^www\.([^.]+\.[^.]+\.ru)$ [NC]

RewriteRule ^(.*)$ http://%1/$1 [L,R=301,E=RVR:yes]

Первые две строки из этой четверки строк добавил потому, что нее знаю, есть ли у Вас реврайты в .htaccess

Если есть и чтоб они не повлияли, в первых строках проверяется сделан ли уже редирект, и если сделан, то выполняется выход из дальнейших преобразований.

В третьей строке проверяется, если адрес хоста имеет вид www.*.*.ru (поддомен домена в зоне ru c добавкой www. в начале),

то выполняется редирект на тот же документ, но без www. в начале (и добавляется значение переменной RVR=yes, чтоб исключить обработку при повторном проходе по .htaccess)

Можно убрать у "a"

line-height: 50px; (или можете задать любое значение не более 25 в Вашем случае, для двухстрочного текста)

и добавить для "h3"

display: table-cell;

vertical-align: middle;

Это не будет работать в IE6-IE7

и чтоб работало для Safari 3.1 нужно будет добавить пару контейнеров для "h3" с display: table и table-row

RewriteRule не видит то, что в адресе находится после вопросительного знака (не видит строки запроса, параметров)

Так что одной строкой не получится.

Оба варианта будут перенаправлять для всех страниц c подходящей под шаблон строкой запроса.

Если у Вас конкретно нужно подобное только для страницы forumdisplay.php то можно конкретизировать ее, например так

RewriteCond %{QUERY_STRING} (.*)&order=[^&]+(.*)

RewriteRule ^forumdisplay\.php$ http://%{HTTP_HOST}/$0?%1%2 [R=301,L]

У Вас в этом случае из адреса типа

forumdisplay.php?f=29&order=desc&page=2

уберется все начиная с "&order=" и до первого следующего символа & (не включая его)

Вместо $0 подставится вся строка из первой части RewriteRule (все что находится между ^$)

Можете просто написать вместо $0 значение forumdisplay.php (чтоб понятнее было Вам, серверу без разницы в данном случае)

Вместо %1 и %2 сервер подставит значения из RewriteCond соответствующие первым и вторым скобкам соответственно (в данном случае все то что находится в начале строки запроса и что в конце, до параметра order и после него).

t я по ошибке вместо f использовал

Написал в прошлом сообщении редирект с двумя условиями не проверяя, а когда проверил, оказалось что так не работает.

Могу предложить два проверенных варианта с одной строкой условия

Удаление из строки запроса всех параметров кроме f и page (в том случае если f раньше page и между ними есть другие параметры или один параметр)

RewriteCond %{QUERY_STRING} f=([0-9]+).+&page=([0-9]+)

RewriteRule ^.*$ http://%{HTTP_HOST}/$0?f=%1&page=%2 [R=301,L]

и вариант, удаляющий параметр order с любым значением, и сохраняющий все остальные параметры в строке запроса:

RewriteCond %{QUERY_STRING} (.*)&order=[^&]+(.*)

RewriteRule ^.*$ http://%{HTTP_HOST}/$0?%1%2 [R=301,L]

[NC] можно добавлять чтоб работало независимо от регистра (одинаково для page и PAGE например), чеще всего это не нужно

Вместо одного условия поставьте два (двумя строками)

RewriteCond %{QUERY_STRING} t=([0-9]+) [NC]

RewriteCond %{QUERY_STRING} page=([0-9]+) [NC]

RewriteRule ^.*$ http://%{HTTP_HOST}/$0?t=%1&page=%2 [R=301,L]

Можно и одной строкой, но это только если уверены что порядок следования параметров будет всегда таким (всегда сначала одни, например f, а затем page)

Надежней двумя строками.

Редирект произойдет если выполнятся условия одновременно двух строк.

Если вместо

display

использовать

visibility

то все работает

в стилях

visibility: hidden;

в функции

id.style.visibility="visible";

Совсем не обязательно писать персональные редиректы для каждого из 50 городов, достаточно одного редиректа вида


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

Но у Вас это тоже не будет работать, у Вас еще есть где-то правила (которые делают переадресацию на папку города).

Или в этом же файле htaccess, или в каком то другом файле htaccess. В же не написали, что этот файл из корневой папки сайта.

Это правило нужно вставлять в файл htaccess, расположенный в корне сайта.

И вставлять сразу после первых строк

RewriteEngine on

RewriteBase /

(в принципе таких строк может быть несколько в особо навороченном файле)

Еще для исключения влияния нижележащих правил я обычно советую создать какую-нибудь переменную, например RVR (в редиректе задается переменной значение, а при следующем проходе по файлу это значение проверяется)

В общем после первых строк

RewriteEngine on

RewriteBase /

вставьте такой код


RewriteCond %{ENV:REDIRECT_RVR} ^yes$
RewriteRule .* - [L]
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.site\.ru)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301,E=RVR:yes]

фоновый рисунок абсолютно не влияет на размеры объектов

сделайте ширину не один пиксел, а несколько пикселей, будет лучше

seosniks, попробуйте такой вариант

preg_match("/<span[^<]+small[^<]+>(.*)<\/span>/isU",$fn,$ok4);

[^<] используется для того чтобы small относилось именно к данному span и в (.*) попало только содержимое этого span.

Флаг U нужен для варианта, если есть несколько span, иначе регулярка выберет открывающий тег от первого span, а закрывающий от последнего.

Данный вариант будет некорректно работать если внутри тега span есть вложенные теги span.

Всего: 437