Однозначно определенные URL без .php

Обсуждение любых вопросов связанных с файлами конфигурации .htaccess

Однозначно определенные URL без .php

Сообщение irushan » Пн мар 24, 2014 12:14 pm

День добрый.

Существует сайт http://site.ru/
Он статичный, состоит из .php страниц.
Существуют страницы вида:

http://site.ru/index.php
http://site.ru/page1.php
http://site.ru/page1/page1.php
http://site.ru/page1/page2.php

Мне необходимо прописать правила htaccess, чтобы адреса определялись однозначно, то есть без использования окончания php. То есть вот так:

http://site.ru/ (главная страница)
http://site.ru/page1/ (адрес страницы первого уровня кончается слешем)
http://site.ru/page1/page1 (адрес страницы второго уровня кончается без слеша)
http://site.ru/page1/page2

А по запросу с окончанием .php чтобы либо вообще запрещались, либо редиректились на без .php.

P.S.: Могу прописать для каждой страницы и вручную ( не так уж много страниц). Самое главное чтобы запросы работали по вышенаписанному правилу.

Помогите разобраться, пожалуйста.
irushan
 
Сообщений: 1
Зарегистрирован: Пн мар 24, 2014 12:06 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Пн дек 14, 2015 7:01 am

Код: выделить все
DirectoryIndex index.php

RewriteEngine On

RewriteCond %{THE_REQUEST} (/[^?/]+/[^?/]+)\.php
RewriteRule ^ %1 [R=301,L]


RewriteCond %{THE_REQUEST} /index\.php
RewriteRule ^ / [R=301,L]


RewriteCond %{THE_REQUEST} (/[^?/]+)\.php
RewriteRule ^ %1/ [R=301,L]


RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/$ $1.php [L]


RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+/[^/]+)$ $1.php [L]
Emilien
Мл. Сержант
 
Сообщений: 51
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Htaccess

Кто сейчас на форуме

Зарегистрированные пользователи: нет зарегистрированных пользователей

cron