WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top
up vote 5 down vote accepted

here a simple WordPress rewrite rule to get the job done:

add_action('generate_rewrite_rules', 'attachment_rewrite_rule_14924');

function attachment_rewrite_rule_14924($wp_rewrite){
  $new_rules = array();
  $new_rules['attachment/(\d*)$'] = 'index.php?attachment_id=$matches[1]';
  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;

just add this code to your theme's functions.php file and save.

*note: the index.php is regardless of your existing URL structure.

share|improve this answer
Thanks Bainternet. – José Pablo Orozco Marín Apr 17 '11 at 20:59

José Pablo

In addition to changing the permalinks settings in your dashboard to make pretty URL's, you can create a folder named "attachments" in the root of your site to hold the files that you would like site visitors to download. In addition to uploading the files you wish to share, you should create (using notepad or any text editor) a blank file named index.html and upload it to the "attachments" directory. Adding the blank file will prevent people from browsing the directory and downloading all of the files unless you provide them with the specific URL.


share|improve this answer

You could use a plugin like PrettyLink to create a friendly URL to redirect to the attachment. http://wordpress.org/extend/plugins/pretty-link/

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.