2010-02-17 2 views
1

Я пытаюсь перенаправить перенаправление на свой сайт с URL-адреса категории на фиксированный URL-адрес.Как удалить параметры URL из перенаправления apache 301?

Структура URL является:

http://www.mysite.com/my-category-c-17_12.html 

И я пытаюсь перенаправить к:

http://www.mysite.com/my-static-category.php 

Используя следующие перенаправления в моем файле .htaccess:

Redirect 301 /my-category-c-17_12.html http://www.mysite.com/my-static-category.php 

В итоге я получаю:

http://www.mysite.com/my-static-category.php?cpath=17_12 

Ниже мой редиректа, у меня есть следующие строки:

RewriteRule ^(.*)-c-([0-9_]+).html$ index.php?cPath=$2&%{QUERY_STRING} 

я не уверен, если это то, что вызывает его или нет. В основном я хочу, чтобы удалить параметры из перенаправленного URL. Кто-нибудь знает, как с этим бороться? Благодаря!

ответ

0

Если вы не хотите глобального переписывания (в соответствии с предложением Ignacio Vazquez-Абрамса) .. Вместо использования директивы Redirect, просто использовать RewriteRule. Нечто подобное (в полном объеме):

RewriteEngine on 

# Limited redirects 
RewriteCond %{REQUEST_FILENAME} my-category-c-17_12.html$ [OR,NC] 
RewriteCond %{REQUEST_FILENAME} my-category-c-17_13.html$ [OR,NC] 
RewriteCond %{REQUEST_FILENAME} my-category-c-17_14.html$ 
RewriteRule ^(.*)-c-([0-9_]+).html$ $1.php [R=301,L] 

# Other rewrites 
RewriteRule ^(.*)-c-([0-9_]+).html$ index.php?cPath=$2 [QSA,L] 

Затем можно добавить другие URL-адрес в RewriteCond, чтобы больше ссылок будут перенаправлены.

+0

Работал как шарм. Благодарю. – user77413

+0

Добро пожаловать. Рад помочь – Cez

1

Если у вас уже есть mod_rewrite, то почему бы просто не использовать его?

RewriteRule ^(.*)-c-([0-9_]+).html$ $1.php [R=301,L] 
+0

Я только хочу переписать определенные URL-адреса, а не все URL-адреса, поэтому я не хочу изменять поведение остальной части сайта. И это должно быть 301, потому что я просто пытаюсь сохранить старые ссылки в такт. – user77413

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