在 CentOS 上配置 Apache 以支持伪静态(URL 重写)主要涉及以下几个步骤:
安装 Apache 和 mod_rewrite 模块
首先,确保你已经安装了 Apache 服务器。如果尚未安装,可以使用以下命令进行安装:
sudo yum install httpd
接下来,启用 mod_rewrite
模块,该模块用于处理 URL 重写:
sudo yum install mod_rewrite
sudo systemctl enable httpd
sudo systemctl start httpd
配置 Apache 的 AllowOverride
为了让 .htaccess
文件生效,需要在 Apache 配置文件中设置 AllowOverride
为 All
。编辑主配置文件 /etc/httpd/conf/httpd.conf
或者虚拟主机配置文件(通常位于 /etc/httpd/conf.d/
目录下),找到 <Directory>
块并添加或修改如下行:
<Directory "/var/www/html">
AllowOverride All
</Directory>
这里的 /var/www/html
是你的网站根目录,根据实际情况进行调整。
创建或编辑 .htaccess 文件
在你的网站根目录(例如 /var/www/html
)下创建或编辑 .htaccess
文件。添加以下内容以启用 URL 重写规则:
RewriteEngine On
RewriteBase /
# 示例规则:将 /example 将重写到 /index.php?page=example
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA]
这个示例规则会将所有非文件和非目录的请求重写到 index.php?page=请求路径
。
重启 Apache 服务
保存 .htaccess
文件后,重启 Apache 服务以使更改生效:
sudo systemctl restart httpd
测试配置
打开浏览器,访问你的网站,确保伪静态规则按预期工作。例如,访问 http://yourdomain.com/example
应该会显示 index.php?page=example
的内容。
通过以上步骤,你应该能够在 CentOS 上成功配置 Apache 以支持伪静态。如果你遇到任何问题,请检查 Apache 的错误日志(通常位于 /var/log/httpd/error_log
)以获取更多信息。