• Upgrade Your Account
    Hello Guest ! Upgrade your account to download from our sections Here.
    How to upgrade your account to download resources Learn More.
    Guest need to see List rather permanently banned Members Learn More.
    Guest need to read through our rules and regulations Learn More.

Request Protecting admin.php and the install directory using .htaccess

Status
Not open for further replies.

NullXF

Team NullXF
XF Root
Messages
9,302
Resources
3,292
Likes
3,687
#2
This resource is not affiliated with XenForo Ltd.

If you want to provide an extra layer of protection to admin.php and the /install directory, you can do so with .htaccess.


Protecting admin.php
To protect admin.php, edit the .htaccess file which is in your forum root directory (e.g. /community) and add the following to it:
Code:
<Files admin.php>
AuthType Basic
AuthName "ACP"
AuthUserFile "path/to/passwd/file"
Require valid-user
</Files>
The "path/to/passwd/file" will look something like "/home/my-domain/.htpasswds/public_html/community/passwd".

Then create a corresponding passwd file. This is how to do it using cPanel.
  1. Log in to cPanel
  2. Click on Password Protect Directories
  3. Select Web Root
  4. Click on the forum root folder
  5. Check Password protect this directory
  6. Name it as "ACP"
  7. Click Save
  1. Create User
  2. Enter Username
  3. Enter Password
  4. Click on Add/modify authorised user
A passwd file will be created in /.htpasswds/public_html/<name_of_your_forum_root_folder>


Protecting the /install directory
To protect the /install directory, create a new .htaccess file in /install and add the following to it:

Code:
AuthType Basic
AuthName "Upgrade System"
AuthUserFile "path/to/passwd/file"
Require valid-user
In this case it is using the same passwd file as for the ACP so just repeat the steps above to create a different one.


Using IP address based protection instead of passwd
You can also use IP address protection instead of a passwd file. In which case you would just have this in the .htaccess file for admin.php:

Code:
<Files admin.php>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Files>
And this for the /install directory:

Code:
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Replace 127.0.0.1 with your actual IP address. You can find out your IP address here.
Additional allowed IP addresses can be added on a new line.

If you have a static IP address then this approach is fine. If it's dynamic however, you will need to constantly update the file every time it changes.
Or you can just add the first 2 blocks like so: Allow from 127.0
 
Status
Not open for further replies.