首先,确保已启用Apache的mod_rewrite模块,因为它负责重写URL以进行路由。如果还没有启用,可以通过在终端中运行以下命令来启用它:
sudo a2enmod rewrite
然后,打开.htaccess文件并确保启用了mod_rewrite。以下是一个示例.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]
这个.htaccess文件做了几件事情。首先,它启用了mod_rewrite。然后,它检查请求是否为现有的文件或目录。如果请求不是文件或目录,它将重写URL以调用index.php并将请求作为查询参数传递。最后,一些附加的选项(L,QSA)用于告诉Apache如何处理该规则。
最后,确保您的PHP代码正确处理查询参数。例如,在上面的.htaccess文件中,请求将作为名为“q”的查询参数传递给index.php。因此,在您的PHP代码中,您需要检索该查询参数并使用它来确定要显示的内容。
现在您的Apache配置和.htaccess文件应该正确处理PHP路由。
上一篇:Apache的.htaccess规则中存在冲突的重定向,SSL重定向。
下一篇:Apache的.htaccess文件和ISAPI_Rewrite的.htaccess文件之间是否兼容?如果存在兼容性问题,有哪些解决方法?