Jump to content

koly32

User
  • Posts

    40
  • Joined

  • Last visited

koly32's Achievements

Explorer

Explorer (1/14)

1

Reputation

  1. Действительно можно сделать простенькую проверку url типа: if(preg_match("/[A-Z]/",$_SERVER['REQUEST_URI'],$rVG)){ header("HTTP/1.0 404 Not Found"); } Прописав эти строчки в index.php в самом верху (опять же в зависимости как реализован движок) Тогда железно все в верхнем регистре в помойку 404 и все странички сайта будут открываться исключительно если запрос на них был в нижнем регистре. НО Помогите разобраться все таки а) Ясно. И логично) а вот если взять к примеру сайт htmlbook.ru там при переходе к примеру на htmlbook.ru/html/audio мы попадаем на htmlbook.ru/html/audio если htmlbook.ru/html/AuDio мы попадаем на htmlbook.ru/html/AuDio причем загружается одна и та же страница. При этом 404 ошибка не выдается. Или она ошибка 404 выдается роботу но пользователю все-таки загружается страница?? Или все-таки ошибка 404 не выдается и страница загружается вне зависимости от верхнего регистра а на поисковики можно подзабить?? Если взять vk.com то здесь к примеру при переходе на vk.com/article или vk.com/ArtiCle мы попадаем на одну и туже страницу (причем ошибка 404 не выдается) НО в url регистр тот с которым страница изначально например vk.com/ArtiCle Получается в vk.com регистр букв в url реализован путем редиректа 301 на правильную страницу причем как бы с правильным регистром?? Получается vk.com подстроились все-таки под пользователя) ? (Хотя если на конце слеш / то vk.com "как не правильный" и не подстроенный под пользователя выдает 404 хотя можно и 301 редирект на страницу без слеша)) Ясно. WWT извините конечно что столько вопросов. Просто хочу разобраться в этом раз и навсегда. Чувствую уже что истина где-то рядом))
  2. Не очень хорошо для пользователя) У меня так реализовано) Так и сделаю. А что если пользователь поставит где-нибудь ссылку на мой сайт в "не правильном" регистре т.е. site.ru/Vasya-99 и поисковики проиндексируют эту "не правильную" ссылку? получается с точки зрения поисковиков site.ru/Vasya-99 и site.ru/vasya-99 это две разные ссылки которые ведут на одну страницу site.ru/vasya-99 ? Судя потому как я это понял то да) А чтобы избежать дубля нужно похоже делать 301 редирект в файле .htaccess (Получается из-за верхнего регистра как бы две проблемы 1 поисковики 2 хостинг на котором сайт) на одном из форумов нашел: Будте внимательны к регистру. Короче говоря, если вы используете серверы / IIS Microsoft, то все в шоколаде. Но если вы поклонник Linux/UNIX, то проблем не избежать, поскольку они по разному интерпретируют регистр и randswhisky.com/AbC будет совсем не тоже самое что randswhisky.com/aBc. Идеальным решение будет если неверный регистр в урле будет автоматически редиректиться/канонизироваться на правильный урл. Есть специальный htaccess который может помочь в этом. Вот этот сайт Если честно то не очень то хочется добавлять в .htaccess столько строк. Хоть как я понял из перевода там сказано, что они сильно тормозить систему не будут, но все же: RewriteRule [A-Z] - [E=HASCAPS:TRUE,S=1] RewriteRule ![A-Z] - RewriteRule ^([^A]*)A(.*)$ $1a$2 RewriteRule ^([^B]*)B(.*)$ $1b$2 RewriteRule ^([^C]*)C(.*)$ $1c$2 RewriteRule ^([^D]*)D(.*)$ $1d$2 RewriteRule ^([^E]*)E(.*)$ $1e$2 RewriteRule ^([^F]*)F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$ $1h$2 RewriteRule ^([^I]*)I(.*)$ $1i$2 RewriteRule ^([^J]*)J(.*)$ $1j$2 RewriteRule ^([^K]*)K(.*)$ $1k$2 RewriteRule ^([^L]*)L(.*)$ $1l$2 RewriteRule ^([^M]*)M(.*)$ $1m$2 RewriteRule ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$ $1p$2 RewriteRule ^([^Q]*)Q(.*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$ $1s$2 RewriteRule ^([^T]*)T(.*)$ $1t$2 RewriteRule ^([^U]*)U(.*)$ $1u$2 RewriteRule ^([^V]*)V(.*)$ $1v$2 RewriteRule ^([^W]*)W(.*)$ $1w$2 RewriteRule ^([^X]*)X(.*)$ $1x$2 RewriteRule ^([^Y]*)Y(.*)$ $1y$2 RewriteRule ^([^Z]*)Z(.*)$ $1z$2 RewriteRule [A-Z] - [N] RewriteCond %{ENV:HASCAPS} TRUE RewriteRule ^/?(.*) /$1 [R=301,L] Ну или если в файл httpd.conf то это. Работает быстрее опять же насколько я понял из перевода: RewriteMap lowercase int:tolower RewriteCond $1 [A-Z] RewriteRule ^/?(.*)$ /${lowercase:$1} [R=301,L] Чем дальше тем не веселее мягко говоря'( WWT Скажите пожалуйста что Вы об этом думаете?
  3. У меня на сайте все url заканчиваются слешем / (Настройка такая в файле .htaccess о чем выше писал) т.е. site.my/article/ или site.my/section/ именно поэтому я хотел добавить слеш / в конце url где частью url является логин т.е. чтобы так было site.my/Vasya.Pupkin-99/ (стандартно везде чтобы было), а поскольку из-за точки . в логине который является частью url на конце слеш / не ставится (нужно допиливать пару строчек в файле .htaccess о чем тоже писал выше), а мне нужно чтобы везде было со слешем я принял решение): 1 Убрал все слеши / на конце url. Прописал в файле .htaccess : RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC]RewriteRule ^(.*)(/)$ $1 [L,R=301] изначально было так. убрал: RewriteCond %{REQUEST_URI} /+[^\.]+$RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 2 Добавил в регулярку для логина еще разрешенных символов: $NoStop = "/^[a-z0-9\_\-\+\@\$\~\.\=]{3,20}$/i"; Теперь эти требования отменяются:1 только латинские буквы или цифры , а так же допускаются знаки _.- 2 не может начинаться с _.- и заканчиваться соответственно тоже 3 не могут повторятся символы подряд например -- или -_ или -. и т.п. Логин может быть от 3 до 20 символов и латинских букв и быть хоть таким: site.my/--~-_@_.= что опять же не очень хорошо наверно. Ну что же я решил проблему со слешем на конце url просто убрав его. А над такой допустимостью символов даже латинских в логине который будет в url еще надо подумать. Даже регистр букв важен вроде как..Т.е. site.my/Vasya.Pupkin-99 и site.my/vasya.pupkin-99 Могут восприниматься поисковиками как разные страницы. Об этом пишут в инете. Что вы думаете по этому поводу?
  4. А разве так можно чтобы символы могли повторятся друг за другом и чтобы логин начинался ну и заканчивался этими символами? Судя по ответу " 2. странное требование 3. тоже странное требование" то можно) Латинских символов ведь очень много получается их все можно использовать??? https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82_%D0%B2_%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4%D0%B5
  5. 1. спецсимволов можно и больше разрешить 2. странное требование 3. тоже странное требование Дальнейшей возни с регулярками и редиректами я вообще не понимаю, можно сделать все намного проще и понятнее. Смотрел регистрацию на других популярных сайтах. Там в большинстве даже точку нельзя поставить) А вообще наткнулся вот на эту статью http://habrahabr.ru/post/40618/ У меня получается интеграция с CMS только что на свой движок. Ресурс тоже авторитетный вроде как) у меня опыта нет почти. поэтому я пытаюсь сделать чтобы переделывать потом много не пришлось. Если сейчас я думаю как с одной точкой в url разобраться, то что будет если разрешить больше спецсимволов)) Может наоборот тогда пробовать убрать слеш / или на худой конец .html добавить (.html я могу добавить)? Будет или так: site.ru/S-u_p-e-r.Nic или так: site.ru/S-u_p-e-r.Nic.html а желательно все же так '(: site.ru/S-u_p-e-r.Nic/ - куда лучше выглядит)
  6. Теперь столкнулся с другой проблеммой '( В файле .htaccess у меня прописано так: RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] Эти строчки ставят слэш / в конце url и ели в конце .html то слеш / не ставится. Т.е. изначально если так: site.ru/S-u_p-e-rNic то после: site.ru/S-u_p-e-rNic/ Казалось бы все нормально НО если в url (в данном случае в логине который является частью url) присутствует точка . то слеш / на конце url не ставится. Случайно обнаружил эту ошибку. Можно отказаться конечно от точки . в логине (который является частью url) но мне бы хотелось чтобы точку все же можно было ставить. Пробовал еще такой вариант он работает как и выше представленный и также отказывается ставить слеш на конце url если в url присутствует точка. RewriteCond %{REQUEST_URI} (.*/[^/.]+)($|\?) RewriteRule .* %1/ [R=301,L] Помогите пожалуйста дописать в один из этих кодов чтобы если есть точка . в url то в конце url ставился бы слеш / (если в конце url .html то слеш / не нужно) Если в регулярном выражении функции preg_match файла php я еще мог чего-то допилить то в файле .htaccess не получается. '(
  7. Только что сам допил)))))))) И так регулярное выражение для логинов-ников использующихся в url: $NoStop = "/^([a-zA-Z0-9]+[_.-]{0,1})+[a-zA-Z0-9]+$/";
  8. Здравствуйте. Нужно проверить логин пользователя, а т.к. логин будет использоваться еще и в url (будет личный кабинет пользователя) то требования к логину "самые жесткие": 1 только латинские буквы или цифры , а так же допускаются знаки _.- 2 не может начинаться с _.- и заканчиваться соответственно тоже 3 не могут повторятся символы подряд например -- или -_ или -. и т.п. Ниже составленная мною регулярка прекрасно проверяет такие вот примерно логины: SuperNic или Super-Nic Вот если нужно так к примеру то не пропускает: S-u_p-e-r.Nic Понимаю что эта регулярка должна повторятся как-бы что ли чтобы знаки с буквами тоже могли повторятся по требованиям выше представленных трех важных пунктов. Но как это сделать '(? как сделать чтобы такой вот логин мог проходить: S-u_p-e-r.Nic $NoStop = "/^[a-zA-Z0-9]+([_.-]{0,1})[a-zA-Z0-9]+$/";
  9. Еще Раз Большое Человеческое Спасибо за столь подробное объяснение. Буду и дальше штудировать данный сайт. Может и я кому что подскажу
  10. Спасибо большое. А можно еще вопрос на счет заголовка ответа клиенту Last-Modified. К примеру сайт http://htmlbook.ru не отдает дату последней модификации Last-Modified. Проверял на этом сайте http://last-modified.com/ru/ хотя Яндекс вроде как, рекомендует чтобы сервер (хостинг) обрабатывал заголовки Last-Modified. Вот теперь думаю делать эту обработку или нет..Проверял еще несколько крупных сайтов и они тоже не обрабатывают Last-Modified По видимому карты сайта достаточно для хорошей индексации поисковиками. Справка Яндекса https://yandex.ru/support/webmaster/robot-workings/robot-workings-faq.xml Скажите пожалуйста пару слов про Last-Modified :)
  11. Здравствуйте. Подскажите пожалуйста, какой из ниже представленных вариантов времени будет правильным, в фале sitemap.xml? Нужно указывать время по Гринвичу? или Московское? (на моем хостинге время Московское GMT+03:00) Если сейчас, к примеру, время по Гринвичу 04:30:50 а на хостинге соответственно 07:30:50 то в карте сайта должно быть: Вариант 1: <lastmod>2015-08-20T04:30:50+00:00</lastmod> Вариант 2: <lastmod>2015-08-20T04:30:50+03:00</lastmod> Вариант 3: <lastmod>2015-08-20T07:30:50+00:00</lastmod> Вариант 4: <lastmod>2015-08-20T07:30:50+03:00</lastmod> На своем "самописном движке" могу сделать любой из вариантов только вот какой правильный..
  12. Я бы Вам ответил бы если бы понимал о чем вы говорите так сказать) у меня работает как описал выше и я очень рад.
  13. ВСЕ СДЕЛАЛ ОГРОМНЕЙШЕЕ СПАСИБО!!!! Убрал правда |html| из RewriteRule \.(php|htm|html|swf|fla|xml|ico|jpg|gif|png|js|css)$ - [L] поствил перед RewriteRule ^.*$ index.php [NC,L] получилось вот так: AddDefaultCharset utf-8 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] RewriteRule \.(php|htm|swf|fla|xml|ico|jpg|gif|png|js|css)$ - [L] RewriteRule ^.*$ index.php [NC,L] ЕЩЕ РАЗ СПАСИБО)))) Все заработало) записей пока одна) будет много))
  14. Прописал так: AddDefaultCharset utf-8 RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} /+[^\.]+$ RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] RewriteRule \.(php|htm|html|swf|fla|xml|ico|jpg|gif|png|js|css)$ - [L] RewriteRule ^.*$ index.php [NC,L] Стили загрузились)) но только на главной странице(( И категории еще извиняюсь. Т.е. http://site.ru/ стили грузит!! http://site.ru/category/ стили грузит!! а вот http://site.ru/category/article.html вообще не открывает денвер ошибку выдает Not Found The requested URL /css/novaya-statya-novoy-temy.html was not found on this server.
  15. Спасибо смысл понятен буду пробовать но пока не получается.. Спасибо Вам за подсказки пробую но пока ничего не выходит(( После обработки файлом .htaccess с моими настройками получаются ссылки такого вида http://site.ru/category/article.html Как мне и нужно. Т.е. что он (файл .htaccess) делает - добавляет слеш / в конце категории (изначально категория без слеша) причем если в конце .html то слеш / не добавляется. Все хорошо работает но вот увы не грузятся CSS javascript картинки((
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy