如何处理mod_rewrite中查询字符串中的"#"?

Som*_*DOS 1 mod-rewrite seo

我问了一个关于将旧的"丑陋"链接重写为seo友好链接的问题.

我需要在一些网址中的"尖锐"符号后"提取"一些信息.我已经为它创建了一个正则表达式,但它看起来不起作用.

在我的问题之后,我为这个url创建了这个逻辑,例如script.php?mode=full&id=23:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /script\.php\?mode=full&id=([0-9]+)\ HTTP/
RewriteRule ^script\.php$ fix_old_urls.php?phpfile=script2&id=%1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

但是我正在使用遗留应用程序,我需要在一些页面中的尖锐符号之后提取值,在示例url中script.php?mode=full#23:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /script\.php\?mode=list\#([0-9]+)\ HTTP/
RewriteRule ^script\.php$ fix_old_urls.php?phpfile=script&id=%1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

(在fix_old_urls中我正确地使用301代码重定向).

第一个工作,但不是第二个工作.对我来说,两者看起来都是一样的逻辑.我做错了什么?

Amb*_*ber 10

锚信息(以该开头的部分#)从未实际发送到服务器.它完全由浏览器处理,因此您无法使用mod_rewrite触摸它(也无法通过服务器端脚本语言访问它).唯一可以看到它的是浏览器和客户端脚本(如Javascript).