Склейка страниц со слешом и без .htaccess

MS
На сайте с 01.01.2009
Offline
48
3165

Всем привет!

Подскажите пожалуйста, кто знает.

У меня есть 2 страницы:

http://www.mysite.ru/catalog

http://www.mysite.ru/catalog/

Хочется, чтобы в поиске была страница с /, и ей передался вес страницы без него.

Как я понял из информации, которую нашёл в сети по htaccess, для такой склейки надо использовать RewriteRule.

Я пишу:

RewriteRule ^catalog$ http://www.mysite.ru/catalog/ [R=permanent,L]

само перенаправление происходит, тут всё ок. но всё ли правильно я сделал для склейки?

MarS. добавил 17.06.2010 в 22:49

Походу на свой страх и риск буду делать) никто не знает что ли?

ищу ссылки (/ru/forum/562300) и статьи (/ru/forum/562301) клуб любительского бокса (http://www.rus-box.ru/)
bigton
На сайте с 17.08.2009
Offline
43
#1

Я бы вот так написал


RewriteEngine on
RewriteBase /
RewriteRule ^catalog$ catalog/ [R=301,L]

А делаете вы все правильно.

Вот скрипт для проверки корректности заголовков:


<?php

if (isset($_POST['get']))
{
$url = isset($_POST['url']) ? trim($_POST['url']) : '';

$resourse = curl_init();
curl_setopt($resourse, CURLOPT_HEADER, 1);
curl_setopt($resourse, CURLOPT_NOBODY, 1);
curl_setopt($resourse, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($resourse, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($resourse, CURLOPT_URL, $url);
$echo = curl_exec($resourse);
curl_close($resourse);

echo str_replace("\n", '<br />', $echo);
}

?>
<form action="" method="post">
<input type="text" name="url" value="<?= isset($url) ? $url : '' ?>" />
<input type="submit" name="get" value="Заголовки" />
</form>

В вашем случае при переходе к http://www.mysite.ru/catalog должен быть сперва заголовок 301, потом 200.

DO
На сайте с 20.01.2010
Offline
55
#2

MarS.,

универсальное (и от того периодически требующее доработки)

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
платно проведу аудит сайта и исправлю все технические проблемы, которые могут мешать продвижению (/ru/forum/594052)
MS
На сайте с 01.01.2009
Offline
48
#3

dustyo_O, а где мои адреса?) не совсем мне понятно как этим пользоваться ..

bigton, спасибо! запускаю .htaccess) проверка мне, боюсь, ничего не даст, тк. я не знаю какие правильно заголовки должны возвращаться

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

http://www.mysite.ru/catalog вместо http://www.mysite.ru/catalog/

MarS. добавил 20.06.2010 в 01:42

bigton, попробовал сделать как вы говорите:

RewriteRule ^catalog$ catalog/ [R=301,L]

www пропадает

и какая разница между R=301 в вашем случае и R=permanent в моём?

naleks
На сайте с 11.06.2008
Offline
69
#4

Была тема: /ru/forum/510440

Срочно читать это.

MS
На сайте с 01.01.2009
Offline
48
#5

naleks, я так понял, что конечное решение вопроса вот:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !.html$
RewriteRule (.+) $1/ [R=301,L]

Это решение для всех страниц. А я искал решение для одной конкретной страницы. Но и заранее сделать для всех не помешает) благодарю!

И скажите, вы предлагаете потом настроить сервер выдавать 403/404 на не нужные страницы и удалить их в вебмастере. Вопрос : склеится ли вес выкинутой страницы с весом нужной нам ?

DO
На сайте с 20.01.2010
Offline
55
#6
RewriteCond %{REQUEST_URI} !.html$

в этом куске есть смысл, только если ваши файлы физически не присутствуют на сервере, а генерируются по URL. Вообще, имеет смысл разобраться в матчасти, что значат инструкции - для этого я вам и дал "рыбу" - чтобы в дальнейшем вы понимали что к чему

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий