Предыдущая проблема хоть и криво, но решена добавлением
Код |
---|
server {
listen 80;
server_name site.ru;
server_name_in_redirect on;
rewrite ^ http://www.site.ru$request_uri permanent;
} |
- добавляем www
и
Код |
---|
RewriteCond %{REQUEST_URI} ^(.*/[^/\.]+)$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L] |
- добавляем слеш, если его нет
Столкнулся ещё с одной проблемой:
необходимо сделать 301 -й редирект со страниц с /index.php на страницы без index.php
т.е. с site.ru/index.php на site.ru/
использовал следующий код:
Код |
---|
#RewriteCond %{THE_REQUEST} ^(.*)/index\.php\ HTTP/
#RewriteRule ^index\.php$ http://%{HTTP_HOST}$1/ [R=301,L] |
интересная ситуация: в 4-й версии (nginx+apache) происходит редирект по кругу
если установлен только apache без nginx'а все работает нормально.
видимо, в первом случае добавляется index.php, запрос site.ru/
Код |
---|
$_SERVER['REQUEST_URI'] = /index.php |
для второго случая, запрос site.ru/
Код |
---|
$_SERVER['REQUEST_URI'] = / |
может, кто-то сталкивался с подобным?