1

Тема: Доработка .htaccess

День добрый! Скажите пожалуйста, какие условия необходимо прописать в файл .htaccess чтобы решались две задачи:
1. Реализовать редирект со страниц без слеша на страницы со слешем (к примеру, редирект со страницы site.ru/categoria на страницу site.ru/categoria/)
2. Реализовать редирект с www на страницы без www (к примеру, редирект с www.site.ru на site.ru)

Сейчас файл .htaccess выглядит следующим образом:

#
# Monstra CMS :: php & apache settings 
#
# Set default charset utf-8
AddDefaultCharset UTF-8
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
    php_flag magic_quotes_gpc                 off
    php_flag magic_quotes_sybase              off
    php_flag register_globals                 off
</IfModule>
# Setting rewrite rules.
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Покопавшись в "интернетах" нашел следующие решения:

Для первой задачи:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.site.ru/$1/ [R=301,L]

Для второй задачи:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule .* http://%1/$0 [L,R=301]

Решение второй задачи заработало, но вот решение первой задачи не подошло. Помогите понять в чем причина. Заранее благодарю!

http://ZenLabs.ru - разрабатываем и продвигаем сайты. 5% скидка клиентам, которые закажут сайт на монстре!

Сайт pesterevilya

Поделиться

2

Re: Доработка .htaccess

Хотя нет, первая задача тоже не решена. Редиректит с внутренней страницы на site.ru/index.php

http://ZenLabs.ru - разрабатываем и продвигаем сайты. 5% скидка клиентам, которые закажут сайт на монстре!

Сайт pesterevilya

Поделиться

3

Re: Доработка .htaccess

Решение найдено. Кому интересно:

AddDefaultCharset UTF-8
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
    php_flag magic_quotes_gpc                 off
    php_flag magic_quotes_sybase              off
    php_flag register_globals                 off
</IfModule>
# Setting rewrite rules.
<IfModule mod_rewrite.c>
    RewriteEngine on 
    RewriteBase / 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
    RewriteRule .* http://%1/$0 [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !\..+$
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule (.*) /$1/ [R=301,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
http://ZenLabs.ru - разрабатываем и продвигаем сайты. 5% скидка клиентам, которые закажут сайт на монстре!

Сайт pesterevilya

Поделиться

4

Re: Доработка .htaccess

Спасибо, что выложили.
Надо будет попробовать...
если, что возьму на вооружение.

У богатых людей - большая библиотека.
У бедных людей - большой телевизор.

Сайт Hmelex

Поделиться

5

Re: Доработка .htaccess

у меня у одного ничего из этих примеров не получается? Тестирую на Денвере со всеми этими примерами и из других веток. получаю по одной ссылке нормально переходит, а другая открывает страницу денвера.

Поделиться

6

Re: Доработка .htaccess

как сделать, чтобы со слэшем / перекидывал на без?

Поделиться

7

Re: Доработка .htaccess

denis пишет:

как сделать, чтобы со слэшем / перекидывал на без?

http://ru.forum.monstra.org/topic/513/f … pro-slesh/

Поделиться

8

Re: Доработка .htaccess

видел я это всё. пробовал. Cо ссылками users и admin получается, перекидывает на без слэша, а sitemap одинаково открывает что со слэшем, что без. а остальные страницы со слэшем открывает 404.
Что я не так написал?

RewriteEngine on
RewriteBase /monstra/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

Поделиться