I would like to 410 an entire directory - I deleted my blog

亡梦爱人 提交于 2019-12-12 07:46:37

问题


I had a folder called blog on my site. I deleted it all permanently. I would like to 410 it. How do i 410 an entire folder?

e.g. my site looked like this

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

now posts 1,2,3,4, are dead.

so how do i specify that everything after blog, is permanently deleted. (as well as the folder 'blog' itself)

I need a htaccess line something like this...?

redirect 410 /blog/?(.*)


回答1:


The Redirect directive is the proper way to do this. You should put the following in your virtual host configuration:

Redirect 410 /blog

If you don't have access to the virtual host configuration, you can put it in the .htaccess file in your document root, or I believe you can put the following in the .htaccess file in the blog subdirectory:

Redirect 410 /

(I might be off about that, I'm not sure how exactly Redirect interacts with path resolution in .htaccess files)




回答2:


I don't think Redirect is the right tool for this, as it only matches the path specified. Just use:

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



回答3:


The following .htaccess would be useful when, for example, you move from a hosting to another and you reorder or delete parts of your web.

As Apache allows human syntax codes I have used permanent instead of 301 code, and gone instead of 410. You can check http protocol codes here Status Code Definitions

I placed the file on my root mynewblogaddress.com folder:

.htaccess

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



回答4:


You can set a rewrite rule in .htaccess to redirect all URLs containing the dead folder "blog" to a custom "Does not exist" error page or whatever. If you want the actual code then I would recommend reading guide-url-rewriting to help you figure this out.




回答5:


For those who are using IIS (7 or above) and stumble across this post as i did, this is how I wound up doing it using the 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();
    }
}

I happened to be looking for all pages in a directory, but I could have done something similar like targeting all html pages (assuming 410’ing ALL html pages were to be “gone”)



来源:https://stackoverflow.com/questions/8549172/i-would-like-to-410-an-entire-directory-i-deleted-my-blog

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!