Apache mod_rewrite是一个非常强大的URL重写引擎,它允许您基于各种条件重写URL
LoadModule rewrite_module modules/mod_rewrite.so
<Directory>部分,确保AllowOverride设置为All或至少包含FileInfo。例如:<Directory /var/www/html>
AllowOverride All
</Directory>
创建或编辑.htaccess文件:在您希望应用URL重写的目录中创建一个名为.htaccess的文件(如果尚不存在)。在此文件中,您可以编写重写规则。
编写重写规则:在.htaccess文件中,使用RewriteEngine、RewriteCond和RewriteRule指令编写重写规则。例如,将所有以.php结尾的URL重写为不带扩展名的URL:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
这里,RewriteEngine On启用重写引擎,RewriteCond定义条件,RewriteRule定义规则。
%{REQUEST_FILENAME}表示请求的文件名。!-d表示请求的文件不是一个目录。\.php表示文件扩展名为.php。$1表示第一个捕获组(在括号内定义)。sudo service apache2 restart
或者
sudo systemctl restart apache2
现在,您的Apache服务器应该已经根据您在.htaccess文件中定义的规则重写URL了。请注意,mod_rewrite规则可能会非常复杂,因此请务必查阅官方文档以获取更多信息和示例:https://httpd.apache.org/docs/current/mod/mod_rewrite.html