Is a restart required after changing the .htaccess file?
The quick answer to the question (for those in a rush) is no, a restart is not required to Apache after a change to an .htaccess file is made. It doesn’t matter what type of change is made to the .htaccess file, a restart of Apache is not required. If you want to know why a restart of Apache isn’t required, then keep reading!
If .htaccess support is turned on in your Apache web server, then that means whenever a file on your web server is requested, Apache will have to look for an .htaccess file in each and every directory that leads up to where the actual file resides on the server. Let’s repeat that because it is important to understand: as long as .htaccess support is turned on in your Apache server, it means that when a user requests a file on your web server each and every directory will be searched for an .htaccess file leading up to the actual requested file.
Example of how Apache searches for .htaccess files
So, for example, let’s say someone requests the fictitious file called “http://www.programmerinterview.com/java/interview-questions/somepage.php”. This means that if .htaccess support is turned on in the server running programmerinterview.com, Apache would first look in the web root directory on the server, then the java directory, and finally the interview-questions directory to see if there are any .htaccess files in those directories.
Let’s assume that the web root directory resides at /home/username/public_html. Then, Apache would search for .htaccess files in these directories, in the order listed below:
/home/username/public_html/.htaccess /home/username/public_html/java/.htaccess /home/username/public_html/java/interview-questions/.htaccess
.htaccess files can override other .htaccess files
And, suppose that there is an .htaccess file in both the java and interview-questions directories, then this means that the .htaccess file in the interview-questions directory could override whatever directives were given in the java directory. Of course, this overriding would only take place in files and subdirectories of the interview-questions directory, because the .htaccess file would only override the directives of .htaccess files that appear further up in the directory tree on the server.
What does it mean if Apache looks for an .htaccess file for every request?
As we already discussed, if .htaccess files are enabled, it means that Apache will search for an .htaccess file in every directory leading up to the file for each and every request that is made to the server.
Are .htaccess files cached by Apache?
This also means that when a change to an .htaccess file is made it will take effect immediately – because .htaccess files are not cached by the server, so a restart to Apache is not required. The very next request made to your web server after your .htaccess file is modified will show the effects of the modified .htaccess file.
A hard refresh might be required to see changes to .htaccess
One thing to note is that If you are trying to see the changes from an .htaccess file take effect in a browser you have previously used to view your webpage, then you might need to do a “hard refresh”. Or you could just clear your broswer’s cache and then view the webpage. After that, you should definitely see the changes from your .htaccess file.