使用 mod_rewrite 重定向 .htaccess 规则

使用 mod_rewrite 重定向 .htaccess 规则

我有一个 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]

相关内容