Вы можете авторизоваться через ВКонтакте, Фейсбук и оставить комментарий


Как добавить слэш в конце URL — mod_rewrite

Вступление

Если на веб-сервере, в корневой директории, есть файл /catalogue/index.php или /news/index.php, и если в адресной строке прописать, например: http://example.com/catalogue, то в адресной строке автоматически добавится завершающий слэш и строка будет выглядеть так: http://example.com/catalogue/.

ЧПУ

Как часто это бывает, на все ссылки папок не создашь, поэтому все используют mod_rewrite, для создания ЧПУ (человекопонятный URL).

Пример

Адрес новостей на expange.ru выглядит так: http://expange.ru/news/, http://expange.ru/news/2010/.

Самый простой способ написать mod_rewrite правила такой:

1
2
3
4
5
6
7
8
9
# включаем mod_rewrite
RewriteEngine On
RewriteBase /

# реврайт на новости
RewriteRule ^news/$ news.php [L]

# реврайт на новости за год
RewriteRule ^news/([0-9]{4})/ news.php?year=$1 [L]

Результат

Если набрать в адресной строке expange.ru/news/ будет открыта страница expange.ru/news.php, если expange.ru/news/2010/ — expange.ru/news.php?year=2010.

Если набрать expange.ru/news или expange.ru/news/2010, то появится ошибка 404, т.к. в правилах прописано, что завершающий слэш должен обязательно присутствовать.

Добавление завершающего слэша в URL

Решение очень простое:

1
2
3
4
5
6
7
8
9
10
11
# включаем mod_rewrite
RewriteEngine On
RewriteBase /

# если нет слэша - добавляем и редиректим
RewriteRule ^news$ /news/ [L,R]
RewriteRule ^news/$ news.php [L]

# если нет слэша - добавляем и редиректим (новости за год)
RewriteRule ^news/([0-9]{4})$ /news/$1/ [L,R]
RewriteRule ^news/([0-9]{4})/ news.php?year=$1 [L]

Пояснение

Конструкция RewriteRule ^news$ /news/ [L,R] означает, что если веб-сервер видит в адресной строке expange.ru/news, то делает редирект на страницу /news/ с завершающим слэшом на конце. То же самое происходит и в конструкции RewriteRule ^news/([0-9]{4})$ /news/$1/ [L,R]. И ссылки, ведут себя как существующая директория на сервере.

Опубликовано: 18 января 2011  ·  Автор: Артём Фёдоров  ·  5618 просмотров

Категория

ГлавнаяApachehtaccessmod_rewriteКак добавить слэш в конце URL — mod_rewrite

Чтобы оставить комментарий нужно авторизоваться на сайте
или войти через ВКонтакте или Фейсбук

Войти через ФейсбукВойти через Твиттер

Комментарии

mod_rewrite, htaccess, Apache

© 2010-2017 expange.ru
При полном или частичном копировании статей сайта, ссылка на источник обязательна.

Хотите узнать больше информации, пишите на: artem@expange.ru

Полезное онлайн  ·  Новости  ·  Изображения  ·  Статьи по датам

О проекте  ·  Правила пользования  ·  Представительства

Благодарности и пожелания