1

我目前在我的 htaccess 文件中进行了重写,需要考虑跳转链接。

我相信我遇到的问题是“#”一直被认为是评论。

我在这里看到建议使用 [NE] 或 [R] 标志的问题,但要么我没有正确使用它们,要么它们没有做我需要的事情。

我目前的工作重写是:

RewriteRule ^news/([^/]*)/([^/]*)/*$ display_news.php?yid=$1&mid=$2 [L]

我的想法是在 url 的末尾附加另一个段,如下所示:

RewriteRule ^news/([^/]*)/([^/]*)/1/*$ display_news.php?yid=$1&mid=$2#jumplink [L]

通过使用 [NE] 和 [R] 标志,我?3F$替换了http://www.asciitable.com/24给出的十六进制代码。我是否必须用特殊括号或其他东西将这些代码括起来?Apache 怎么会知道我不是字面意思或.3F24

当我尝试将这些十六进制代码放在我的文件中时的当前行为,我得到了内部服务器错误。

如果有更优雅的方法来解释 htaccess 文件中的跳转链接,我会全力以赴。

编辑:

正如这里所建议的,是我所期望的示例 URL。

http://website.com/news/2013/11将映射到display_news.php?yid=2013&mid=11

http://website.com/news/2013/11/1将映射到display_news.php?yid=2013&mid=11#jumplink

但我希望地址保持格式http://website.com/news/2013/11/1并映射到页面。

4

2 回答 2

1

#jumplink您重写的 URI 部分对服务器完全没有意义。URL 片段(#jumplink部分)由浏览器和在浏览器上运行的 javascript 使用。它甚至没有传递给 php。

您可以尝试添加一个R标志以从外部重定向浏览器,但我猜这不是您想要的。

于 2013-11-06T15:20:42.207 回答
1

这应该有效:

RewriteRule ^news/([^/]*)/([^/]*)/1/?$ /display_news.php?yid=$1&mid=$2#jumplink [L,NC,QSA,NE,R=302]

我建议您提供要匹配的 URI 示例以及您的目标 URI 是什么。

于 2013-11-06T15:18:36.923 回答