![使用 mod_rewrite 重定向 .htaccess 规则](https://linux22.com/image/665161/%E4%BD%BF%E7%94%A8%20mod_rewrite%20%E9%87%8D%E5%AE%9A%E5%90%91%20.htaccess%20%E8%A7%84%E5%88%99.png)
我有一个 PHP 脚本,可根据查询动态地从数据库生成内容。用户可能会从文本框中搜索用户名“mark”。内容由 PHP 在 www.domain.com/?username=mark 提供,但我希望用户看到的服务 URL 为 www.domain.com/username/mark.html。同样,用户可能通过配置文件(整数)进行搜索。内容在 www.domain.com/?profile=2 生成。我希望用户看到的服务 URL 为 www.domain.com/profile/2.html。这可行吗?
这是我的.htaccess 文件:
RewriteEngine On
RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L]
RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L]
RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L]
Mod_rewrite 已启用,但该文件似乎没有起作用。
答案1
您的代码应该可以运行,但可能根本就没执行。您可以尝试输入一个错误,看看 Apache 是否会给出 500 响应。
除此之外,您还可以尝试使用以下 htaccess。添加 index.php,以确保调用正确的文件。
RewriteEngine On
RewriteRule ^username/([^/]*)\.html$ /index.php?username=$1 [L]
RewriteRule ^realname/([^/]*)\.html$ /index.php?realname=$1 [L]
RewriteRule ^profile/([^/]*)\.html$ /index.php?profile=$1 [L]