2016-10-05 3 views
0

Использование RewriteRule Я пытаюсь перенаправить каждый url в подкаталог в другой подкаталог как абсолютный путь, обрезая все, что появилось после первого каталога. Пример:Перенаправление чего-либо в поддиректории на путь абсолютной директории

www.domain.com/store/search
www.domain.com/store/search?search=some_term

т.д.

все должны пойти в

WWW .domain.com/NEWDIR/

, к сожалению, результаты, которые я вижу, как, например:

www.domain.com/store/newdi r/
www.domain.com/store/newdir/?search=some_term

и так далее. Я использую эту команду в данный момент:

RewriteEngine на
поиск RewriteRule (. *) NEWDIR/[R = 301, NC, L]

Как можно перенаправить ничего/магазин/поиск только просто/newdir, обрезать все, что приходит после слова «поиск»? Благодарю.

ответ

0

Если .htaccess находится в корневом каталоге вы можете сделать что-то вроде этого

RewriteEngine on 
RewriteRule ^store/search(.*)?$ ./newdir/$1 [R=301,NC,L] 

Или, если .htaccess находится в «магазин» директории, которую вы могли бы сделать это ...

RewriteEngine on 
RewriteRule ^search(.*)?$ http://www.domain.com/newdir/$1 [R=301,NC,L] 

Вышеупомянутое должно содержать строки запроса, если вы хотите просто перенаправить в каталог, удалите $ 1

+0

Спасибо sdexp. На самом деле у меня есть .htaccess в обоих каталогах, root и «store». Я поместил ваши предложения в обоих и, к сожалению, все еще получаю результат, который включает в себя запрос, несмотря на удаление $ 1: http://www.domain.com/store/newdir/?search=some_term Возможно, я сделал ошибку. Вот правила, которые я добавил:
** Магазин Dir .htaccess: **
RewriteRule^поиск (. *)? $ Http://www.domain.com/newdir/ [R = 301, NC, L ] ** Root Dir .htaccess: ** RewriteRule^магазин/поиск (. *)? $ ./newdir/ [R = 301, NC, L] –

+0

Попробуйте изменить его на 'RewriteRule^store/search (. *)? $ http: // www \ .domain \ .com/newdir/[NC, L, R = 301] '. Кроме того, иногда я бы сказал, что если у вас есть настроенное правило, оно может оставаться в кеше вашего браузера, поэтому мой совет будет заключаться в очистке кеша, повторном открытии браузера или попытке другого браузера, чтобы проверить, перенаправляется ли ваше кеш или нет. – sdexp

+0

И не имеют дублирующего правила в двух каталогах. Выберите один и удалите правило с другого .htaccess – sdexp

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