2014-11-24 6 views
0

У меня есть поисковая сеть, где пользователи вводят следующий запрос в URL-адрес и выполняют поиск..htaccess 302 перенаправления с регулярным замещением выражения

http://www.example.com/?search=key word&type=sin 
http://www.example.com/?search=key word 

Я делаю каноническую ссылку на странице, чтобы избежать индексирования в goodle.

<link rel="canonical" href="http://www.example.com/key-word/"/> 

Однако мне нужно добавить перенаправление 302 и к этому. i.e

Redirect 302/http://www.example.com/key-word/ (key word is replaced spaces to hypen) 

как это сделать?

ответ

1

Вы можете использовать этот код в файле DOCUMENT_ROOT/.htaccess:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?search=([^\s&]+) [NC] 
RewriteRule^/%1? [R=302,L,NE] 

## replace of space with - 

# executes **repeatedly** as long as there are more than 1 spaces in URI 
RewriteRule "^(\S*) +(\S* .*)$" /$1-$2 [L,NE] 

# executes when there is exactly 1 space in URI 
RewriteRule "^(\S*) (\S*)$" /$1-$2? [L,R=302,NE] 
+0

не работал, кажется, перенаправлять на тот же URL – mahen3d

+0

Был опечатка, она исправлена. – anubhava

+0

теперь перенаправляет, но, похоже, добавляет строку запроса, такую ​​как «xyz.com/key-word/?search=key word» – mahen3d

Смежные вопросы