如果.htaccess中包含%2F,则重写该URL

时间:2014-08-26 05:08:58

标签: php apache .htaccess mod-rewrite url-rewriting

我需要重写包含%2F的任何网址。以下是我尝试识别的网址示例:

http://shop.myurl.com/%2FOakley-004046-C-Wire-P3536.aspx

我需要将此网址重写为:

http://www.myurl.com/search.php?search_query=Oakley-004046-C-Wire-P3536

重写需要做的事情: - 从商店改变子域名。到www。 - 去掉%2F - 跳过.aspx - 注入search.php?search_query =

此外,我需要一个规则,用于任何包含%2F并且只是从商店交换子域的URL。到www。

看起来这应该是可能的,但我没有.htaccess jock。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

尝试:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^shop\.myurl\.com$ [NC]
RewriteCond %{THE_REQUEST} \ //(.*)\.aspx
RewriteRule ^ http://www.myurl.com/search.php?search_query=%1 [L,R]

RewriteCond %{HTTP_HOST} ^shop\.myurl\.com$ [NC]
RewriteCond %{THE_REQUEST} !\ //(.*)\.aspx
RewriteRule ^(.*)$ http://www.myurl.com/$1 [L,R]     

答案 1 :(得分:0)

好像我找到了答案here。整个URL被忽略,因为裸%2F仅允许在查询字符串中,而不是URL。想法有人吗?修复错误的“旧”URL不是一种选择。我只需要重定向它们。