首页 > 解决方案 > 当url在htaccess中包含问号时如何强制rerection?

问题描述

我有一个网址:

www.domain.com/PageName:ArgumentValue1,ArgumentValue2

我想重定向到

www.domain.com/apex/f?p=alias:PageName:ArgumentValue1,ArgumentValue2

到目前为止我已经做了:

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (.*)$ ./apex/f?p=alias:$1 [L]

重定向正常工作,除非 Argumentvalue 有问号。

即使参数中有问号,是否有任何方法可以强制进行这种重定向?

PageName、ArgumentValue1 和 ArgumentValue2 都是动态变量。

谢谢。

标签: .htaccess

解决方案


您可以这样使用您的规则:

# no query string
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ apex/f?p=alias:$1 [L]

# with query string
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} .
RewriteRule ^(.*)$ apex/f?p=alias:$1\?%{QUERY_STRING} [L]

但是请注意,如果您想?根据 REQUEST_URI 进行捕获,则应将其编码为%3f. 所以例如AA?BB将用作AA%3FBB


推荐阅读