Страница 1 из 1

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

СообщениеДобавлено: Пн мар 24, 2014 12:14 pm
irushan
День добрый.

Существует сайт 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.: Могу прописать для каждой страницы и вручную ( не так уж много страниц). Самое главное чтобы запросы работали по вышенаписанному правилу.

Помогите разобраться, пожалуйста.

СообщениеДобавлено: Пн дек 14, 2015 7:01 am
Emilien
Код: выделить все
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]