iguania

iguania
Рейтинг
72
Регистрация
10.12.2010
Интересы
Программирование, SEO
Alkoshenko:
думаю там быстрее вам помогут)

понятно, спасибо

Неадекватный:
Зачем делать новое окно?

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

Лично я бы оставил, чисто для эстетичности и естественности. Хотя, по-моему, на продвижение это никак не влияет, мое имхо

---------- Добавлено 09.03.2012 в 20:21 ----------

А вот от этого

niko-web:
mysaite.com/index.php/restoran.html

лучше избавиться с помощью, прописав условие в .htaccess

siv1987:
Можно 410 отдать

RewriteEngine On
RewriteRule ^page/\d+/$ index.php [G,L]

Да, но в таком случае 410 будет отдаваться для всех страниц вида /page/{id}... нужно, чтобы еще дополнительно соблюдалось это условие ( if ( ! have_posts()) ), т.е. для этой страницы не было найдено постов. В любом случае спасибо Вам за ответ.

maldivec, со вторым замечанием согласен, забыл об параметрах, а вот на счет первого скажу, что хотел сделать универсальное решение, т.к. посчитал, что автор привел лишь один из частных случаев урла, по которому доступны файлы .mp3. Ну да ладно...главное, чтобы автор поста нашел применение приведенным выше способам и у него все заработало)

Пожалуйста, у меня есть и другой способ

RedirectMatch 301 [^/]+/[^/]+/(\d+\.mp3) %{HTTP_HOST}/$1/$2


---------- Добавлено 24.02.2012 в 12:20 ----------

maldivec:
Кто вам сказал, что сайт на php? Да и решение ваше - говнокод ужасный.

Ну и че в нем такого гавнистого?

Можно, конечно, и по-другому написать этот код

$path = $_SERVER['PATH_INFO'];
$path = preg_replace('#(/musik)/folder/(\d+\.mp3)#', '#$1/$2#', $path);
header("Location: $path");

Можно и средствами php сделать, вставив приведенный ниже код до загрузки основного содержимого

if( isset($_SERVER['PATH_INFO']) )

{
// http://site.ru/musik/folder/085432.mp3
$path = $_SERVER['PATH_INFO'];
// http://site.ru/musik/085432.mp3
$path = substr($path, 0, strrpos(dirname($path), '/')) . '/' . basename($path);

// редирект
header("Location: $path");
}
SeVlad:
Ну не.. не может быть, если при запросе несуществующего урла отдаётся 404, а при всех отключённых плагов (тоже уже несуществующей же страницы! Кто же пагинацию делает?) - 200.

Если же всё выше написанное правда (и кеширование тоже отключено), выходит, что пагинацию делает тема - тогда проблема в ней.

Да, действительно пагинацию делает тема. Не знаю, что именно с ней не так, но нашел альтернативное решение, с помощью которого получилось добиться желаемого эффекта, а именно в header.php (в самое начало) добавлено условие

<?php if( ! have_posts()) header("HTTP/1.0 404 Not Found"); ?>

а в index.php и single.php выводится уже не сообщение, а подключается 404.php

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
...
<?php endwhile; ?>
<?php else : ?>
<?php include '404.php'; ?>
<?php endif; ?>
SeVlad:
Цитата:
Сообщение от iguania Посмотреть сообщение
но не 404, а 200.
А если по несуществующему урлу, но без постраничной навигации (site.com/no-post/) - что отдаётся?
Тут или чудеса хостинга или какой-то плаг.. Проверять отключением плагов, или возможно даже темы..

404 отдается.

---------- Добавлено 23.02.2012 в 10:59 ----------

Отключение всех плагинов не помогло, проблема осталась

Появилась следующая проблема, прошу совета знатоков...

Одним словом на блоге Wordpress была постраничная навигация (допустим было 100 постов. На каждой странице выводится по 10 постов и, соответственно, постраничная навигация содержит 10 ссылок: 1 2 3 4 5 6 7 8 9 10). Google проиндексировал каждую из 10-и страниц с превью постов. Затем мы удалили некоторое количество постов (осталось около 80-ти) и, соответственно, количество страниц в постраничной навигации уменьшилось. Проиндексированные ранее страницы /blog/page/9, /blog/page/10 стали отдаваться с ошибкой (страница не найдена), но не 404, а 200.

Вопрос: как вы поступаете в таких ситуациях и как сделать, чтобы отдавался код 404.

Всем спасибо.

Всего: 472