Web МастерскаяБлог
Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.
jQuery: проверка наличие элемента в массиве
Для проверки элемента в массиве в библиотеку jQuery добавлена функция
Вместо:
jQuery.inArray():
if (jQuery.inArray('js', ['js', 'jQuery']) > -1) {
// Элемент существует в массиве
};Вместо:
jQuery.inArray можно писать: $.inArray....- Жалоба
- 1
Как посчитать количество элементов на чистом CSS
Допустим у нас есть блок с ID
Добавим блок, для вывода количества элементов:
Затем считаем на чистом CSS:
CSS посчитает элементов в блоке и выведет результат в блок
block, в котором находятся элементы (<span> или другие), и нам надо посчитать их на чистом CSS:
<div id="block">
<span></span>
<span></span>
<span></span>
</div>Добавим блок, для вывода количества элементов:
<div id="sum"></div>Затем считаем на чистом CSS:
#block {
counter-reset: block;
}
#block > span {
counter-increment: block;
}
#sum:before {
content: counter(block);
}CSS посчитает элементов в блоке и выведет результат в блок
<div id="sum"></div>....Nginx: Удаление параметров в URL
Где есть пагинация (1, 2, 3, и так далее), например, тема форума, первая страница может открываться по трем адресам:
Параметр
Имея возможность редактировать конфигурацию Nginx, я решил переписать удаление параметров в Nginx. Важно было, чтобы параметр бул удален только при значении
...
- site/forum/thread/xxx/
- site/forum/thread/xxx/page_0/
- site/forum/thread/xxx/page_1/
Параметр
page_X нужен начиная со второй страницы, но ни как не первой. На то, что одна страница открывается по нескольким адресам, могут ругаться поисковые системы. Я избавился от ненужного параметра для первых страниц, где есть пагинация, на PHP:
// Удаление "page_0" | "page_1" из URL
if (preg_match('/page_(0|1)?\//i', $url) && stristr($url, 'admincp/') === false)
{
$url = preg_replace('/page_(0|1)?\//', '', $url);
} // End: Удаление "page_0" | "page_1" из URLИмея возможность редактировать конфигурацию Nginx, я решил переписать удаление параметров в Nginx. Важно было, чтобы параметр бул удален только при значении
0 и 1, значения 10, 11, 12 и так далее, оставались. Сделал в server:
# Удаление "page_0" | "page_1" из URL
location ~* ^(.*)/page_(0|1)/$ {
return 301Nginx: Добавление слеша в конце URL, если его там нет
Ранее страницы моего сайта открывались, как с слэшем в конце URL, так и без него. Чтобы не допустить дублей страниц, я решил, что мой сайт будет работать только с слэшем в конце URL. Проверку слэша и его добавления делал на PHP:
Слэш добавляется ко всем URL, кроме тех, что имеют на конце:
Всё работает отлично, но грешно делать это на PHP, если есть Nginx... Поискав в интернете решение моей задачи, нашёл такую строку кода:
Данный код добавляет слэш в конец всем URL, кроме тех, где есть точка (
Вставил строку в
...
// Добавление слеша в конце URL, если его там нет
if (substr($url, -1) != '/')
{
if (!preg_match('/(.*)\.(jpg|jpeg|gif|png|js|css|ico)/i', $url))
{
$url = $url . '/';
}
} // End: Добавление слеша в конце URL, если его там нетСлэш добавляется ко всем URL, кроме тех, что имеют на конце:
jpg|jpeg|gif|png|js|css|ico.Всё работает отлично, но грешно делать это на PHP, если есть Nginx... Поискав в интернете решение моей задачи, нашёл такую строку кода:
rewrite ^([^.\?]*[^/])$ $1/ permanent;Данный код добавляет слэш в конец всем URL, кроме тех, где есть точка (
.) или параметры (id=1). А значит картинки, к которым будут обращаться на прямую, остаются без слэша.Вставил строку в
location:
location / {
rewrite ^([^.\?]*[^/])$ $1/Nginx: Удаление лишних слэшев в URL
Ранее я удалял лишние слэши, при помощи PHP. Делал так:
Сегодня, наконец то, дошли руки, чтобы перенести удаление лишних слэшев в конфиг Nginx. Я добавил в
После чего перечитал конфигурацию, при помощи команды:
Теперь код в PHP удаляю, больше он не нужен. Работает Nginx.
Возможно, будет интересно:
- Блог: Nginx: Добавление слеша в конце URL, если его там нет
- Блог: Nginx: Удаление параметров в URL...
// Удаление лишних слешев
if (preg_match('/\/{2,}/i', $url))
{
$url = preg_replace('/\/{2,}/', '$1/', $url);
} // End: Удаление лишних слешевСегодня, наконец то, дошли руки, чтобы перенести удаление лишних слэшев в конфиг Nginx. Я добавил в
server следующий код:
# Удаление лишних слешев
if ($request_uri ~ "//") {
return 301 $uri;
} # End: Удаление лишних слешевПосле чего перечитал конфигурацию, при помощи команды:
nginx -s reloadТеперь код в PHP удаляю, больше он не нужен. Работает Nginx.
Возможно, будет интересно:
- Блог: Nginx: Добавление слеша в конце URL, если его там нет
- Блог: Nginx: Удаление параметров в URL...
Категории
- Apache 6
- CMS 3
- CSS 16
- FTP 1
- HTML 11
- JavaScript 43
- MySQL 17
- Nginx 16
- PHP 52
- phpMyAdmin 2
- SEO 3
- SVG 6
- URL 1
- XML 3
- Безопасность 7
- Библиотека JS 16
- Графика 3
- Доменное имя 1
- Инструкция 1
- Кодировка 2
- Контент 8
- Мнение 1
- Мобильное устройство 1
- Монетизация сайта 2
- Настройка 3
- Ошибка 11
- Поисковая система 1
- Продвижение сайта 6
- Производительность 1
- Софт 1
- Старт 2
- Сценарий 1
- Функция 1
- Хостинг | Сервер 3
Реклама













