PDA

Показать полную графическую версию : [решено] mod_rewrite и редирект - вопрос


mar
22-11-2011, 16:01
есть сайт с такими вот правилами в .htaccess:


## Подключаем 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
есть еще DirectorySlash (http://httpd.apache.org/docs/2.2/mod/mod_dir.html#directoryslash)

можно примерно так еще
RewriteCond %{REQUEST_URI} \/[^\.\/]+$
RewriteRule .? http://%{HTTP_HOST}%{REQUEST_URI}/ [R=301,L]
+ еще варианты, зависит от контекста...

Sham
22-11-2011, 17:07
Когда я в броузере указываю http://www.qq.ru/articles/show/10 , то получаю страницу, которую получала бы, если бы набрала правильно »
хз браузер может и сам исправлять, можно по отсылаемым заголовкам посмотреть...

mar
29-02-2012, 12:13
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]


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




© OSzone.net 2001-2012