发布于2026-07-03 阅读(0)
扫一扫,手机访问
在Apache2中搞定URL重写,其实核心就是玩转mod_rewrite这个模块。很多新手一上来就被规则吓到,但拆开来看,步骤非常清晰。

先别急着写规则,第一步得确认模块有没有“醒着”。运行这条命令把mod_rewrite模块激活:
sudo a2enmod rewrite
然后记得让Apache2重启一下,才能让改动生效:
sudo systemctl restart apache2
接下来,你得找到目标目录——就是你想应用URL重写规则的那个文件夹。在里边创建一个叫.htaccess的文件(如果已经存在就直接编辑它)。这个文件就是Apache的“规则口袋”,所有重写逻辑都放在里面。
打开.htaccess文件,写入类似下面的内容,这会是一个最基本的永久重定向:
RewriteEngine On
RewriteBase /
RewriteRule ^old-url$ /new-url [R=301,L]
解释一下:old-url是用户访问的旧地址,new-url是你想让他去的新地址。[R=301,L]这两个标记很关键——R=301告诉浏览器这是一次永久重定向(对SEO友好),L意味着这条规则执行完就停下来,不再往下匹配其他规则。
当然,现实中的需求通常更复杂。比如你想把/category/下面的所有文章URL都重写成带参数的动态地址,可以用正则表达式来匹配:
RewriteEngine On
RewriteBase /
RewriteRule ^category/([^/]+)$ /index.php?category=$1 [L]
这里的([^/]+)会捕获斜杠后面的任意字符,比如/category/tech就会把tech作为参数传递给index.php。
全部写好后,保存文件,然后再次重启Apache2让新规则生效:
sudo systemctl restart apache2
现在你去访问旧的URL,应该会自动跳转到新地址。需要提醒的是,.htaccess文件所在的目录以及路径写法可能会因为服务器配置而略有差异——如果你发现规则不工作,先检查一下Apache主配置文件里是否允许.htaccess覆盖(AllowOverride All),这是最容易踩的坑。
上一篇:Apache2如何设置伪静态规则
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8