在 .htaccess 搜索中使用井号 (#)

发布于 2024-12-11 04:30:07 字数 402 浏览 0 评论 0原文

所以这件事的要点是, 我有一个文件:

search.php

当我转到:

search.php?search=%23HashTag

搜索返回: #HashTag

但是当我使用 .htaccess 方法时:

/search/%23HashTag

没有返回任何内容。我已经通过在搜索中稍后放置数字符号进行了测试,它会返回到该点。

这就是我所拥有的:

RewriteRule ^search/([^\.]+)$ search.php?search=$1 [NE,L]

我做错了什么......?

So the jist of this is,
I have a file:

search.php

When I goto:

search.php?search=%23HashTag

The search returns: #HashTag

But when I use my .htaccess method:

/search/%23HashTag

Nothing is returned. And i've tested by putting the number sign later in the search and it returns upto that point.

This is what I have:

RewriteRule ^search/([^\.]+)$ search.php?search=$1 [NE,L]

What am I doing wrong..?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

£噩梦荏苒 2024-12-18 04:30:07

将您的标志更改为[NE,B,L]

http://httpd.apache.org/docs/current/rewrite/flags .html#flag_b

mod_rewrite 在应用转换之前对 url 进行转义。我不确定为什么它会在哈希后丢失任何内容(也许它会将其重新解释为 url,并丢弃该片段?)。无论如何,[B] 在通过重写规则运行 url 之前都会重新转义该 url。

Change your flags to [NE,B,L].

http://httpd.apache.org/docs/current/rewrite/flags.html#flag_b

mod_rewrite unescapes the url before applying transformations. I'm not sure why it loses anything after the hash (maybe it re-interprets it as a url, and discards the fragment?). In any case, [B] re-escapes the url before running it through the rewrite rule.

随风而去 2024-12-18 04:30:07

将其替换为 \%23 可以吗?

(明确:反对在 .htaccess 文件中写入 #)

Does replacing it with \%23 work ok?

(Clarity: Opposed to writing the # in the .htaccess file)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文