我正在尝试转换
www.domain.com/tag/c++ --> www.domain.com/index.php?qa=tag&qa_1=c++
我使用此代码:
RewriteRule ^(.*)/(.*)/?$ /index.php?qa=$1&qa_1=$2 [R=301,L]
但它将页面重定向到c标签,因为正常工作必须先将其转换为%2B%2B
它也会错误地重定向此页面:
www.domain.com/tag/c%2B%2B
我也使用此代码重定向用户页面,他们有一些字符,如/ space和...
使用htaccess
执行此操作的最佳方式是什么?
答案 0 :(得分:1)
添加NE标志应该这样做。它将阻止特殊字符被编码。
默认情况下,特殊字符,例如&和?,例如,将 转换为等效的十六进制代码。使用[NE]标志可以防止 发生的事情。
RewriteRule ^(.*)/(.*)/?$ /index.php?qa=$1&qa_1=$2 [R=301,L,NE]
它应该允许您访问www.domain.com/tag/c++
< - 该网址并被重定向到www.domain.com/index.php?qa=tag&qa_1=c++