当本地主机上的“.htaccess”重写规则不起作用时,可以尝试以下解决方法:
sudo apachectl -M | grep rewrite
如果没有任何输出,表示rewrite模块未启用。您可以通过以下命令来启用它:
sudo a2enmod rewrite
然后重新启动Apache服务器:
sudo service apache2 restart
sudo nano /etc/apache2/apache2.conf
找到以下行:
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
将“AllowOverride None”改为“AllowOverride All”。然后保存文件并重新启动Apache服务器:
sudo service apache2 restart
确保.htaccess文件位于正确的位置:确保.htaccess文件位于您要应用重写规则的目录中。例如,如果您希望在/var/www/html/目录中使用重写规则,则.htaccess文件应位于/var/www/html/目录中。
检查.htaccess文件的语法错误:在.htaccess文件中可能存在语法错误,导致重写规则无法生效。您可以使用以下命令来检查.htaccess文件的语法错误:
sudo apachectl configtest
如果有任何语法错误,则会显示错误消息。您需要根据错误消息修复.htaccess文件中的错误。
请注意,以上解决方法适用于基于Apache的本地主机。如果您正在使用其他Web服务器,请参考该服务器的文档以了解如何解决重写规则不起作用的问题。