2017-07-04 56 views
1

我有网址这样http://www.example.com/subdir/Subcontent?QUERY=420501我想它重定向到http://www.example.com/subcontent.html?QUERY=420501因此,如果子内容是在网址中使用动态那么它将子内容的第一个字母变小,并重定向到最终网址http://www.example.com/subcontent.html?QUERY=420501的.htaccess重定向子目录扩展和查询字符串

我曾尝试与此

RewriteCond %{QUERY_STRING} QUERY=([0-9]+) [NC] 
RewriteCond %{REQUEST_URI} !\.html 
RewriteRule ^subdir/(.*)$ /$1 [L,R=301] 

但它似乎并不工作,我认为序列是不恰当的cangetting这个无能的条件。

回答

0

添加此RewriteMap在Apache或虚拟主机服务器配置:

RewriteMap lc int:tolower 

你也有一个额外的条件,利用这个规律来重定向和小写网址:

RewriteCond %{QUERY_STRING} (^|&)QUERY=([0-9]+) [NC] 
RewriteRule ^subdir/([\w-]+)/?$ /${lc:$1}.html [L,NC,R=301] 
+0

我们已经非常接近网址是现在更改为http://www.example.com/Subcontent.html?SSAID=420501,但问题是S是资金,它需要很小,我们也可以这样做,因此可能会有额外的子内容,所以最终的网址将是http://www.example.com/subcontents.html?SSAID=420501感谢anubhava你是男人! –

+0

这是为我工作的最终版本RewriteRule^subdir/[sU](。*?)/?$ /u$1s.html [L,NC,R = 301] –

+0

堆栈溢出正在改变[s U]到超级用户如果s和U之间没有空格,那么它会将其更改为超级用户,只是想知道是否可以使它更好一些,例如,如果Subcontent是动态的,并且首字母大写,如url http://www.example。 com/subdir/Subcontent QUERY = 420501那么它可以自动小写Subcontent的第一个字母? –

相关问题