apache - 如何在不改变相对路径的情况下使用 apache 的 mod_rewrite rewriterule

标签 apache mod-rewrite

我在 .htaccess 中有以下重写规则:

RewriteRule ^groups/([^/\.]+)/?$  groupdetail.php?gname=$1 [L,NC]

这需要类似于 www.example.com/groups/groupname 并调用 www.example/groupdetail.php?gname=groupname。它工作得很好。

但是 groupdetail.php 上的所有相对链接都使用 groups/作为相对路径,我不希望他们这样做。我如何避免这种情况?

例如,当用户点击 groupdetail.php?gname=groupname 上的 <a href="link.php"> 链接时,他会被带到 www.example/groups/link.php。我想将用户带到 www.example.com/link.php。

显然,我想让用户的 URL 看起来像“www.example.com/groups/groupname”,所以我不想使用 [R]/redirect。

最佳答案

如果像我一样在页面中有数百个相对链接,请在 <base href=""> 中插入一个 <head> 并带有绝对路径(也可以使用相对路径)。您还需要将 <head> 中的 .js 文件的路径设为绝对路径,因为 IE 和 firefox 处理 base href 的方式不同。我同意这是一个烦人的问题。

关于apache - 如何在不改变相对路径的情况下使用 apache 的 mod_rewrite rewriterule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/144651/

相关文章:

php - mod_rewrite - 如何重定向错误输入的 'pretty' url

Apache 访问日志文件仅打印 vhost_combined

javascript - 定期加载远程 JSON(错误 : Origin is not allowed by Access-Control-Allow-Origin)

apache - 在 Apache 运行时 APR 中限制文件夹访问

apache - 如何使 mod_rewrite 抑制处理更多规则?

php - PHP 上 REST API 的 mod_rewrite

PHP $_SERVER ["PATH_INFO"] url 中没有 index.php 时不返回信息(htaccess url 重写)

javascript - 如何在网络中检测用户操作系统/浏览器信息(使用 php、js、html)?

apache - nginx 中的虚拟目录对应物

url - MOD_REWRITE 规则无法忽略变量