如何在URL中重写查询字符串以进行哈希?

时间:2018-02-17 11:36:46

标签: .htaccess mod-rewrite url-rewriting

我希望改写:

www.mysite.com/services/category1/?content=service1

www.mysite.com/services/category1/#tab-service1

我有这个特定的重写,我想概括网站上所有可能的URL:

RewriteCond %{QUERY_STRING} content=service1
RewriteRule ^services/category1  services/category1/#tab-service1? [NE,R,L]

我尝试了以下但是没有用:( -

RewriteCond %{QUERY_STRING} content=([a-zA-Z]+)
RewriteRule ^services/category1/?content=(.*)$  services/category1/#tab-$1 [NE,R,L]

感谢。

1 个答案:

答案 0 :(得分:1)

你的规则看起来很好,除了一件事

QUERYSTRING content=service1

不是RewriteRule模式中匹配的一部分,因此您无法在RewriteRule的模式中测试查询字符串(在?之后的Url部分)。要测试网址查询字符串,我们使用%{QUERY_STRING}变量,就像您正在使用的变量一样。

RewriteCond %{QUERY_STRING} content=([a-zA-Z]+)
RewriteRule ^services/category1/?$  services/category1/#tab-%1 [NE,R,L]