Переадресация сервера с www на сервер без www
Задача, есть сайт, допустим www.maxistar.ru, хотим чтобы при заходе на www.maxistar.ru пользователь перебрасывался на maxistar.ru автоматически, ну или же наоборот, кому как нравится.
Как любую техническую задачу эту задачу можно решить несколькими способами. Один из вариантов написать функцию на PHP, однако сегодня нашел рецепт с использованием mod_rewrite:
RewriteEngine on RewriteCond %{http_host} ^www.maixstar.ru [nc] RewriteRule ^(.*)$ http://maxistar.ru/$1 [r=301,nc]
HTML - спецсимволы
Так на всякий случай, может пригодиться:
Название | Символ | Числовой код | Мнемонический код |
Прямая кавычка | “ | " | " |
Амперсанд | & | & | & |
знак «меньше» | < | < | < |
Знак «больше» | > | > | > |
Торговая марка | ™ | ™ | &trade |
Неразрывный пробел |   |   | |
Цент | ў | ¢ | ¢ |
Фунт | Ј | £ | £ |
Знак валюты | ¤ | ¤ | ¤ |
Йена | Ґ | ¥ | ¥ |
Вертикальная строка | ¦ | ¦ | ¦ |
Знак параграфа | § | § | § |
Знак копирайта | © | © | © |
Знак отрицания | ¬ | ¬ | ¬ |
Знак "зарегестрировано" | ® | ® | ® |
Знак градуса | ° | ° | ° |
Знак "минус" | − | &minus | |
Длинное тире | | – | |
Знак "плюс минус" | ± | ± | ± |
Знак "микро" | µ | µ | &mikro |
Знак абзаца | ¶ | ¶ | ¶ |
Точка-маркер | · | · | · |
Степень 1 (номер) | № | ¹ | ¹ |
Левая типографская кавычка | « | « | « |
Правая типографская кавычка | » | » | » |
Знак умножения / кавычки/ | * | × | × |
Знак деления | / | ÷ | ÷ |
Как узнать IP посетителя сайта
Казалось бы, нет ничего проще - ip адрес посетителя заносится Апачем в переменную $_SERVER['REMOTE_ADDR'] но есть некоторые нюансы...
Пользователь может находится за прокси-сервером а это значит что в REMOTE_ADDR будет адрес не пользователя а прокси-сервера. Если пользователь использует анонимный прокси-сервер с целью спрятать свой ip адрес то определить его реальный адрес вряд ли получится, но если пользователь использует не анонимный прокси, например экономит трафик или еще зачем, то его вполне можно вычислить по заголовкам HTTP_X_FORWARDED_FOR, но при этом нужно учитывать, что если он выходит через прокси своей организации то там может содержаться внутренний ip адрес который нам не нужен.
Все вышесказанное учитывается в вот какой несложной функции:
function get_ip(){ $alt_ip = $_SERVER['REMOTE_ADDR']; if (isset($_SERVER['HTTP_CLIENT_IP'])){ $alt_ip = $_SERVER['HTTP_CLIENT_IP']; } else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)){ // make sure we dont pick up an internal IP defined by RFC1918 foreach ($matches[0] AS $ip){ if (!preg_match("#^(10|172\.16|192\.168)\.#", $ip)){ $alt_ip = $ip; break; } } } else if (isset($_SERVER['HTTP_FROM'])){ $alt_ip = $_SERVER['HTTP_FROM']; } return $alt_ip; }
SPF для работы с Gmail
Как создать SPF запись для сервера, который сам посылает почту, скажем из различных PHP скриптов на сайте, сам сервер при этом не является MX майлсервером - все ящики лежат на 1and1.com, да еще некоторые из пользователей посылают почту от имени данного сервера через Gmail?
Компетентные источники утверждают, что SPF запись будет выглядеть как то так:
"v=spf1 a mx include:aspmx.googlemail.com ~all"
Хотя несколько вещей мне непонятны, а именно, при попытке посмотреть SPF для гугла, выдается странное:
> nslookup -type=ALL aspmx.googlemail.com
> "v=spf1 redirect=_spf.google.com"
т.е. меня как бы послали на _spf.google.com, но во первых в доменном имени не может быть знака _ - те кто хоть раз пробовал настроить на локальной станции виртуальный домен со значком подчеркивания в имени должны на всю жизнь запомнить и так больше никогда не делать, во вторых домена _spf.google.com не существует...
> nslookup -type=ALL _spf.googlemail.com
> *** UnKnown can't find _spf.googlemail.com: Non-existent domain
кто-нибудь может объяснить данный феномен?