Rewriterule未在Apache 2.4 httpd.conf中应用

时间:2017-04-12 13:22:19

标签: mod-rewrite httpd.conf apache2.4

我想通过httpd.conf中启用的RewriteRule(mod_rewrite)重定向我的网址:

https://mysite.domain.tld/index_php_file.php?ab= ident_keys &安培; AC = 5GU7VBNAH45DA5

TO:

https://mysite.domain.tld/index_php_file.php?ab= ident_key_1024 &安培; AC = 5GU7VBNAH45DA5

我已经尝试了许多规则而没有运气:

RewriteCond %{HTTP_HOST} hmysite.domain.tld
RewriteRule ^/index_php_file\.php\?ab=ident_keys&ac=$ https://hmysite.domain.tld/index_php_file.php?ab=ident_key_1024&ac= [R=301,L,QSA]

,也不

RewriteCond %{QUERY_STRING} ^ac=(.*)$
RewriteRule ^/?([a-z-0-9-_.]+)$ /$1/index_php_file.php?ab=ident_key_1024&ac=%1 [L,R=301]

似乎重写了网址。

有关我缺少的任何建议吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,它可能对某人有帮助。

RewriteCond %{QUERY_STRING} ac=([A-Z0-9]+)
RewriteRule ^/?([-a-zA-Z0-9_+]+)$ index_php_file.php?ab=ident_key_1024&ac=$1 [R=301,L]

使用RewriteCond查找字符串(仅包含大写字符和数字)并将URL RewriteRule重写为所需格式并从查询中追加变量值就足够了。

不要忘记在Apache中启用mod_rewrite模块。为了生效,当然也需要重启。