Do you have to restart apache to make re-write rules in the .htaccess take effect?
Apache.HtaccessMod RewriteRestartApache Problem Overview
I have pushed my .htaccess files to the production severs, but they don't work. Would a restart be the next step, or should I check something else.
Apache Solutions
Solution 1 - Apache
A restart is not required for changes to .htaccess. Something else is wrong.
Make sure your .htaccess includes the statement
> RewriteEngine on
which is required even if it's also present in httpd.conf. Also check that .htaccess is readable by the httpd process.
Check the error_log - it will tell you of any errors in .htaccess if it's being used.
Putting an intentional syntax error in .htaccess is a good check to make sure the file is being used -- you should get a 500 error on any page in the same directory.
Lastly, you can enable a rewrite log using commands like the following in your httpd.conf:
> RewriteLog "logs/rewritelog" > > RewriteLogLevel 7
The log file thus generated will give you the gory detail of which rewrite rules matched and how they were handled.
Solution 2 - Apache
No:
> Apache allows for decentralized management of configuration via special files placed inside the web tree. The special files are usually called .htaccess
, but any name can be specified in the AccessFileName directive... Since .htaccess files are read on every request, changes made in these files take immediate effect...
Solution 3 - Apache
From the apache documentation: Most commonly, the problem is that AllowOverride is not set such that your configuration directives are being honored. Make sure that you don't have a AllowOverride None in effect for the file scope in question. A good test for this is to put garbage in your .htaccess file and reload. If a server error is not generated, then you almost certainly have AllowOverride None in effect.
Solution 4 - Apache
Only if you have not added the mod_rewrite module to Apache.
You only need to restart Apache if you change any Apache ".conf" files.
Solution 5 - Apache
I have the same issue and it seems PiedPiper post about AllowOverride were most helpful. Check your httpd.conf file for "AllowOverride" and make sure it is set to All.
Solution 6 - Apache
In case of .htaccess restart is not required if it is not working probable reasons include.
-
AllowOverride May not be set which user can set inside httpd.conf or might have to contact server admin.
-
Check the file name of .htaccess it should be .htaccess not htaccess.txt see here for guide how to create one.
-
Try to use
Options -Indexes
ordeny all
kind of simple directive to see if it is working or not. -
clear browser cache everytime if having rule for redirects or similar if previous redirect is cached it appears as if things are not working.
Solution 7 - Apache
What's in your .htaccess? RewriteRules? Check that mod_rewrite is installed and enabled.
Other stuff? Try setting AllowOverride to 'all' on that directory.