Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] mod_rewrite и редирект - вопрос (http://forum.oszone.net/showthread.php?t=221187)

mar 22-11-2011 16:01 1800817

mod_rewrite и редирект - вопрос
 
есть сайт с такими вот правилами в .htaccess:

HTML код:

## Подключаем mod_rewrite
RewriteEngine On

## редирект с qq.ru на www.qq.ru
RewriteCond %{HTTP_HOST} ^qq.ru$
RewriteRule ^(.*)$ http://www.qq.ru/$1 [R=301,L]

## для нормальных url-ов (все обрабатывает index.php)
RewriteRule ^(.*)/$  index.php [L]

При этом cms валидно обрабатывает url-ы с замыкающим слешем (например, http://www.qq.ru/articles/show/10/ )

Когда я в броузере указываю http://www.qq.ru/articles/show/10 , то получаю страницу, которую получала бы, если бы набрала правильно: http://www.qq.ru/articles/show/10/ (с завершающим слешем), но Яндекс-->мои сайты указывает на ошибку - HTTP-статус: Ресурс не найден (404)

Вот как бы url вида http://www.qq.ru/articles/show/10 перебрасывать на http://www.qq.ru/articles/show/10/ ?

Sham 22-11-2011 16:47 1800868

есть еще DirectorySlash

можно примерно так еще
Код:

RewriteCond %{REQUEST_URI} \/[^\.\/]+$
RewriteRule .? http://%{HTTP_HOST}%{REQUEST_URI}/ [R=301,L]

+ еще варианты, зависит от контекста...

Sham 22-11-2011 17:07 1800885

Цитата:

Цитата mar
Когда я в броузере указываю http://www.qq.ru/articles/show/10 , то получаю страницу, которую получала бы, если бы набрала правильно »

хз браузер может и сам исправлять, можно по отсылаемым заголовкам посмотреть...

mar 29-02-2012 12:13 1869092

Sham,

сегодня на работе озаботились подобным же. Результат:

Код:

## Подключаем mod_rewrite
RewriteEngine On

## Вставляем строчку:
RewriteBase /
                   
## редирект с qq.ru на www.qq.ru                                                                                                                                                   
RewriteCond %{HTTP_HOST} ^qq.ru$                                                                                                                                 
RewriteRule ^(.*)$ http://www.qq.ru/$1 [R=301,L]                                                                                                                 
                                                                                                                                                                       
# редирект url без замыкающего / на url с замыкающим  /                                                                                                                                         
RewriteRule ^(.*)/([0-9A-Za-z_-]+)[^/]?$ $1/$2/ [R=301,L]                                                                                                               
## Или, если в url ожидается  еще и кирилица, то вот так:
##RewriteRule ^(.*)/([0-9А-Яа-яA-Za-z_-]+)[^/]?$ $1/$2/ [R=301,L]     

## для нормальных url-ов (все обрабатывает index.php)
RewriteRule ^(.*)/$  index.php [L]

В любом случае спасибо :)


Время: 18:22.

Время: 18:22.
© OSzone.net 2001-