Я хотел бы 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, чтобы помочь вам разобраться в этом.