Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

mod_rewrite и крайние слэши

256
28 ноября 2006 года
foxweb
1.0K / / 27.07.2005
Привет всем!

Проблеймой это назвать трудно. Скажем так - ситуация, которая привела меня замешательство.

Есть у нашей веб-студии сайт. Есть на сайте hotlog-счётчик, по которому мы смотрим статистику заходов.

На сайте применяется ЧПУ-адресация (ну когда ссылки "красивые").
Внутри сайта все подобные ссылки оканчиваются слэшем. То есть всё что со слешем на конце - считается директорией на сервере (пусть виртуальной, не суть важно) а всё что без слэша - файлом. Всё это дело прописано директивами mod_rewrite. Естественно, что адреса со слэшем считаются верными, а без слэша - неправильными.

Я применяю адресацию именно со слэшем на конце.

Пример записи:

RewriteRule ^portfolio/sites/([0-9]+)/$ /index.php?mod=site&id=$1

Соотв. этому правилу:

http://ir-design.ru/portfolio/sites/26/ - правильный адрес
http://ir-design.ru/portfolio/sites/26 - неправильный адрес

всё так и должно быть. так и было задумано. пока я не заглянул в статистику страниц (таблица ниже - табуляция должна быть):


1 http://ir-design.ru 47 21.17%
2 http://ir-design.ru/portfolio 30 13.51%
3 http://ir-design.ru/portfolio/sites/26 17 7.66%
4 http://ir-design.ru/portfolio/graphdesign 8 3.60%
5 http://ir-design.ru/clients 7 3.15%

и так далее.

но все эти адреса - без конечного слэша!!!
выходит, что все пользователи заходят по неправильным адресам? но как такое возможно, если на самом сайте все адреса точно верные!!! (менеджеры не дают лажать).

у меня есть два варианта. либо хотлог неправильно интерпретирует эти адреса, либо поисковые системы подсовывают юзерам адреса с отрезанными слэшами.

если сделать безразличие со слэшем или без - путаница только увеличится. хотя...

кто что думает по этому поводу? как быть?
13
29 ноября 2006 года
RussianSpy
3.0K / / 04.07.2006
По идее разницы между site.ru/articles и site.ru/articles/ быть НЕ ДОЛЖНО. А то что она у вас есть - это уже кривота реализации

Поправь правило для mod_rewrite на такое

Цитата:
RewriteRule ^portfolio/sites/([0-9]+)/?$ /index.php?mod=site&id=$1 [L]

256
29 ноября 2006 года
foxweb
1.0K / / 27.07.2005
Цитата: RussianSpy
По идее разницы между site.ru/articles и site.ru/articles/ быть НЕ ДОЛЖНО. А то что она у вас есть - это уже кривота реализации

Поправь правило для mod_rewrite на такое



кривота реализации - ничего кривого нет, с регами для реврайта у меня нет проблем. просто хотелось получить ответ, почему так происходит и как быть? я же не спрашивал почему у меня оба варианты не работают ;)

посмотрел на других сайтах - тоже где как.

за совет спасибо.

355
29 ноября 2006 года
<SCORP>
786 / / 21.10.2006
когда браузер запрашивает ресур как файл, а на сервере этот ресурс реально является директорией, то он отвечает браузеру кодом 301 (moved permanntly) и в поле Location заголовка посылает правильный URL этого ресурса, после чего браузер реагирует на него как на перенаправление

вроде так
13
29 ноября 2006 года
RussianSpy
3.0K / / 04.07.2006
Цитата: foxweb
просто хотелось получить ответ, почему так происходит и как быть?


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

256
29 ноября 2006 года
foxweb
1.0K / / 27.07.2005
Цитата: RussianSpy
Изменить регулярное выражение так как я показал... И будет тебе счастье, коллега...



да да, я всё понял. вопрос был не столько технический, сколько философский - "быть или не быть".

13
30 ноября 2006 года
RussianSpy
3.0K / / 04.07.2006
УРЛЫ без слеша на конце и со слешом ДОЛЖНЫ быть идентичны
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог