1

Тема: Вопрос по htaccess

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

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

2

Re: Вопрос по htaccess

RewriteEngine on
RewriteBase /

RewriteRule ^page1/$ /page1.php [QSA,L,NC]
RewriteRule ^page1/page1$ /page1/page1.php [QSA,L,NC]

и так далее.

3

Re: Вопрос по htaccess

Hanut сказал:
RewriteEngine on
RewriteBase /

RewriteRule ^page1/$ /page1.php [QSA,L,NC]
RewriteRule ^page1/page1$ /page1/page1.php [QSA,L,NC]

и так далее.

Спасибо. А как теперь сделать, чтобы запросы с ".php" в конце либо не работали, либо редиректились на без ".php" (во избежание дублей) ?

4

Re: Вопрос по htaccess

RewriteEngine on
RewriteBase /

RewriteRule ^(.+)\.php$ /$1/ [QSA,NC]
RewriteRule ^page1/$ /page1.php [QSA,L,NC]
RewriteRule ^page1/page1$ /page1/page1.php [QSA,L,NC]

Попробуйте так.

5

Re: Вопрос по htaccess

Hanut сказал:
RewriteEngine on
RewriteBase /

RewriteRule ^(.+)\.php$ /$1/ [QSA,NC]
RewriteRule ^page1/$ /page1.php [QSA,L,NC]
RewriteRule ^page1/page1$ /page1/page1.php [QSA,L,NC]

Попробуйте так.


http://site.ru/page1/        выходит   500 Internal Server Error
http://site.ru/page1/page1         выходит Object not found!

6

Re: Вопрос по htaccess

Смотрите в журналах какой путь подставляется.