How to fix Error 404 when Password Protect a WordPress Subdirectory with .htaccess

When you try to password protect a WordPress subdirectory by adding .htaccess and .htpasswd under subdirectory, you sometimes (in fact most of the times) get Error 404 – Page not found when you visit that subdirectory location in the browser.

To fix this error, add the following line at the top of .htaccess located in the root of your WordPress installation (yes, root .htaccess and not .htaccess of your password protected subdirectory), and you’re good to go now.

ErrorDocument 401 default

Do you have any different solution? I would love to hear your comments.

Amavisd-new, ClamAV and SpamAssassin with Postfix on CentOS 6.7 Server

What is amavisd-new, ClamAV and SpamAssassin?

amavisd-new is a high-performance interface between mailer (MTA) and content checkers: virus scanners, and/or SpamAssassin.

Clam AntiVirus (ClamAV) is a free and open-source, cross-platform antivirus software toolkit able to detect many types of malicious software, including viruses. One of its main uses is on mail servers as a server-side email virus scanner.

SpamAssassin is a mail filter to identify spam. It is an intelligent email filter which uses a diverse range of tests to identify unsolicited bulk email, more commonly known as Spam.


yum install amavisd-new

☑ This will install amavisd-new and a bunch of dependencies. It will also install SpamAssassin by default.

yum install clamav clamav-update

☑ This will install ClamAV.


☑ This will update the ClamAV database.


☑ Edit amavisd.conf.

vim /etc/amavisd/amavisd.conf

Change the following lines like this…

$mydomain = ‘’;   # a convenient default for other settings
$myhostname = '’;  # must be a fully-qualified domain name and same as reverse DNS lookup

☑ Make sure everything is set in postfix’s configuration file

vim /etc/postfix/

On top of, you should have something like…

smtp      inet  n       -       n       -       -       smtpd
 -o smtpd_sasl_auth_enable=yes
 -o receive_override_options=no_address_mappings
 -o content_filter=smtp-amavis:

…and on bottom, you should have something like…

# spam/virus section
smtp-amavis  unix  -    -       y       -       2       smtp
 -o smtp_data_done_timeout=1200
 -o disable_dns_lookups=yes
 -o smtp_send_xforward_command=yes inet n  -       y       -       -       smtpd
 -o content_filter=
 -o smtpd_helo_restrictions=
 -o smtpd_sender_restrictions=
 -o smtpd_recipient_restrictions=permit_mynetworks,reject
 -o mynetworks=
 -o smtpd_error_sleep_time=0
 -o smtpd_soft_error_limit=1001
 -o smtpd_hard_error_limit=1000
 -o receive_override_options=no_header_body_checks
 -o smtpd_helo_required=no
 -o smtpd_client_restrictions=
 -o smtpd_restriction_classes=
 -o disable_vrfy_command=no
 -o strict_rfc821_envelopes=yes

☑ Stop the postfix daemon.

service postfix stop

☑ Start Spamassassin, Amavisd-new and ClamAV daemons.

service spamassassin start
service amavisd start # This will also start ClamAV

☑ Start the postfix daemon.

service postfix start

That’s it! Now you have a basic spam and virus protection up and running on your CentOS server. ?

Deploy WordPress plugins from GitHub to SVN

Most developers (and companies) choose Git over SVN as their version control system. However, they have to use SVN to ship updates to plugin repo.

Ship is a new application designed to help developers deploy plugins directly from GitHub to repo. All you have to do is tag the release on GitHub and it will automatically push updates to the plugin’s official SVN repo on


In order to use Ship, you must have already submitted your plugin zip file to You can then sign into the Ship with GitHub account and authorize its access to your repositories.

Ship will then fetch all of your repositories and you’ll have to select the ones you want to hook up with a SVN address in order to start syncing updates.

GitHub Repositories of dipakcg

If you have any issues or feedback on Ship, you can post it on their GitHub repo at