Переписывание URL-адресов с использованием косой черты, параметров и т.д.

У меня проблемы с htaccess.

Вот мои требования:

1) страницы/СТРАНИЦА (без косой черты) ## page.php? Page = PAGE

2) страницы /PAGE/DATA (без косой черты) ## page.php? Page = PAGE & data = DATA

3) логин, выход из системы, индекс (нет.php или /)

4) страницы (с или без косой черты) для перенаправления на логин (без косой черты или.php)

Это то, что я сейчас пытался:

RewriteEngine On
RewriteRule ^logout$ pages/logout.php [NC,L]

#1 
RewriteRule ^pages/(\w+)$ page.php?page=$1 [NC,L]
#2
RewriteRule ^pages/(\w+)/(\w+)$ page.php?page=$1&data=$2 [NC,L]

#3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

RedirectMatch 301 ^(.*)/$ $1

Проблема в том, что корень дает мне "цикл переадресации", Страницы (с или без трейлинга /) дают мне цикл переадресации

1 ответ

У вас есть такие правила:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=302,L]

RewriteRule ^logout$ pages/logout.php [NC,L]

#1 
RewriteRule ^pages/(\w+)$ page.php?page=$1 [NC,L]
#2
RewriteRule ^pages/(\w+)/(\w+)$ page.php?page=$1&data=$2 [NC,L]

#3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]

licensed under cc by-sa 3.0 with attribution.