Я хотел бы 410 весь каталог - я удалил свой блог

У меня была папка под названием блог на моем сайте. Я удалил все это навсегда. Я хотел бы 410 это. Как мне 410 целую папку?

например, мой сайт выглядел так

example.com/blog/mycoolpost1/
example.com/blog/mycoolpost2/
example.com/blog/mycoolpost3/
example.com/blog/mycoolpost4/

сейчас посты 1,2,3,4, мертвы.

так как мне указать, что все, что после блога, навсегда удалено. (а также сама папка "блог")

Мне нужна строка htaccess что-то вроде этого...?

редирект 410 /blog/?(.*)

5 ответов

Redirect Директива является правильным способом сделать это. Вы должны добавить следующее в конфигурацию вашего виртуального хоста:

Redirect 410 /blog

Если у вас нет доступа к конфигурации виртуального хоста, вы можете поместить ее в .htaccess файл в корне вашего документа, или я полагаю, что вы можете поместить следующее в .htaccess файл в blog подкаталог:

Redirect 410 /

(Я мог бы быть об этом, я не уверен, как именно Redirect взаимодействует с разрешением пути в .htaccess файлы)

Я не думаю Redirect является правильным инструментом для этого, так как он соответствует только указанному пути. Просто используйте:

RewriteEngine On
RewriteBase /
RewriteRule ^blog/ - [G]

Следующий .htaccess будет полезен, когда, например, вы переходите с одного хостинга на другой и переупорядочиваете или удаляете части своей сети.

Поскольку Apache допускает использование кодов человеческого синтаксиса, я использовал постоянный вместо кода 301 и пропал вместо 410. Вы можете проверить коды протокола http здесь Определения кодов состояния

Я поместил файл в мою корневую папку mynewblogaddress.com:

.htaccess

Redirect permanent /wordpress http://www.mynewblogaddress.com/blog/
Redirect gone /gallery2   
Redirect permanent /directory2 http://directory2.mynewblogaddress.com

Для тех, кто использует IIS (7 или выше) и наткнулся на этот пост, как я сделал, вот как я закончил делать это, используя global.asax:

void Application_BeginRequest(object sender, EventArgs e)
{
    HttpApplication app = sender as HttpApplication;

    if (app.Request.Url.PathAndQuery.IndexOf("/mydirectory") > -1)
    {
        Response.StatusCode = 410; Response.End();
    }
}

Мне пришлось искать все страницы в каталоге, но я мог бы сделать что-то похожее, например, нацелиться на все html-страницы (предполагая, что "все" html-страницы 410 "пропали")

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

Другие вопросы по тегам