У меня есть это регулярное выражение в htaccess:
RewriteCond %{THE_REQUEST} .*?/out/([^/]+)/?(.*) [NC]
RewriteRule ^ http://%1.example.com/%2?aid=123 [NE,L,R=302]
Этот URL
www.mydomain.com/out/cars/bmw/
возвращается
http://cars.example.com/bmw/%20HTTP/1.0?aid=123
На самом деле, всегда есть % 20HTTP / 1,0 до ?помощь = 123 независимо от того, какой URL с www.mydomain.com/out/ Я попробую 🙁
Зачем? Как от этого избавиться?
Заранее спасибо!
Проблема в совпадении с THE_REQUEST, в котором больше, чем вы думаете. Используйте вместо этого REQUEST_URI. Что-то вроде этого:
RewriteCond %{REQUEST_URI} /out/([^/]+)/?(.*) [NC]
RewriteRule ^ http://%1.example.com/%2?aid=123 [NE,L,R=302]
Для справки:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond
Других решений пока нет …