Milo got me on the right track. If anyone else happens to have this issue the code I used is:
/**
* Redirect broken attachment links to 404
*/
function ww_404_broken_links(){
global $wp_query;
if(is_attachment()){
$attachment_path = get_attached_file( get_the_ID() );
//If the file doesn't exist on the server show 404
if(!file_exists($attachment_path)){
$wp_query->set_404();
status_header( 404 );
get_template_part( 404 );
exit();
}
}
}
add_action('template_redirect', 'ww_404_broken_links');
I also added an htaccess file in the old files directory with just:
RewriteEngine off
So both the attachment posts and the direct links to the files 404 if the file is missing.
Related Posts:
- Stop WordPress from reserving slugs for media items?
- How does WordPress handle permalinks?
- Removing the redirect after changing a page’s slug
- 301 Redirects for Changed Permalink Structure & Category Base
- Is there a user-facing interface to edit an attachment’s permalink?
- URL rewrite based on a custom field value
- How can I force WordPress to redirect to canonical permalinks?
- How do I turn off 301 redirecting posts (not canonical)?
- Subdomains to pages
- Redirect old permalinks to new permalinks
- Passing variables through permalink structure
- + Character in permalink
- How can I include a query string with get_permalink
- Post being redirected to attachment post
- Permalink redirection from ‘Day and name’ to ‘Post name’
- Nicest way to 301 Redirect traffic when changing permalink settings
- Changing pemalink structure to /%post_id%/%postname%/
- htaccess or redirect to cloak portion of a link?
- Redirect short-form URL to long-form URL (post_id to post_id + post_name)
- Auto 301 to full post permalink? (using /posts/%post_id%/%postname%)
- Media items hogging pretty permalinks
- Is it possible to list post attachments in a sub URL endpoint with a dedicated template?
- WordPress on VirtualBox – no pretty permalinks
- Stop redirecting to posts not in a category / duplicate slugs
- WordPress 3.4 Permalinks Redirection Problem
- Random Alphanumeric Key URLs
- Redirect old permalinks with Month and name to Post name on new site
- Make attachment pages require a base url
- Rewrite-Rules not working on a vhost, everything goes to index.php
- Using WP rather than .htaccess to redirect pages/posts
- Does WordPress send a 301 header message when you change permalink structures?
- .htaccess – Redirect duplicated post ended in ‘-number/’ to the same url without the -number/
- Top level Pages redirecting to homepage!
- Attachment page 404 not found when image is attached to post
- Image Attachment Url Rewrite
- How to replace “wp-content/blogs.dir” with “media” for attachment permalinks?
- WordPress redirection problem after moving to a new server?
- Adding File Extensions to Attachment Page Permalinks
- Specific URL Rewriting with parameters in wordpress
- How to 301 all posts
- WordPress within specific sub-directories, implicitly not root
- Page Attachment Permalink Structure based on Menu Order?
- Custom attachment permalink structure [closed]
- Get canonical link
- Attachment Page Permalink/URL Rewrite Issue. How to change the actual rewriting?
- Post incorrectly displaying as page
- wp_logout_url redirects to incorrect page because of pagination
- If I change permalink structures, can I use htaccess to permanantly redirect links?
- Redirect parent taxonomy to it’s child
- Need Help Correct Regular Expression Redirect Code
- Infinite redirects after changing the permalink of a page
- Does rename of page slugs create 301 redirects from old slug to new (same as for posts)?
- Custom Permalink
- Changing the post date without causing 404 error
- Change permalinks on move from one site to another
- List / Get post redirects
- Redirects after permalink change
- Redirect /%year%/%monthnum%/%day%/%postname% [closed]
- How to 301 redirect from one url to another properly
- Redirect a Blogger Page URL to wordpress
- Migrated from Windows to Linux. Any bulk methods for fixing case sensitivity?
- Redirecting all posts after changing URL structure with htaccess
- Redirect all posts permalinks from “.html” to “/”
- WordPress 4.4 old permalink redirect
- how to redirect old blog post urls when permalinks are changed
- Htaccess https 301 problem
- 301 Redirect for Non-Date Based URL’s
- Passing the JQuery string to Worldpress URL
- How to use different domains for different blogs hosted in the same host in subdomains with .htaccess
- How do I make 301 redirection from `/%post_id%/` to `/%postname%/`?
- Freeze child page URLs so parent permalink changes don’t give 404s?
- Permalinks settings
- How can I make internal anchor links work with WordPress’s permalinks?
- Resolve 404 on posts without category
- What causes /pages/ to appear in URI, and how to remove it?
- Redirect Attachment Page to Attachment
- Some Pemalink problems, probably caused by wrong .htaccess configuration?
- Test site pages go to main site
- Comment author url link is wrong? How to change from authors/ to author/
- Remove “attachment/” from the URL of attachment pages
- Strange behavior with a redirect loop – involves WPML multi-language plugin
- Redirect From Url To Url
- I’ve removed my /author/ slug but it clashes with new and existing pages. Any fixes?
- Redirecting “wrong” but working links to their canonical URL in order to prevent search engine penalties (e.g. /123/ at the end of URLs)
- After cloning WP do a subdirectory, I can’t access it
- change WordPress permalinks and redirect new urls 301
- Post Title to link to a PDF
- Arabic permalink redirect to home page
- Getting an ID from a URL, why can WP do this itself, but none of of the functions provided get it right?
- Change permalink to attachment
- Custom permalink structure with %postname% in front of domain name
- Configuring Home Page Address
- Redirect after permalink changes
- Passing variable as permalink URL
- Blogger To WordPress Permalink Redirection
- new page redirect to old page which had the same permalink
- How do i get post thumbnail using attachment code
- Help me fix these crazy attachment page URLs (rewrite?)
- Is there a way to show attachment IDs on the attachment info screen?
- Permalinks and page store