Помогите разобраться с .htaccess

BR
На сайте с 29.01.2013
Offline
67
350

Добрый вечер, уже замучался, не могу никак настроить правильно редирект

Был старый сайт с ссылками такого вида: site.ru/index.php?rad=3

Сайт перехал на WP

Есть стандартный .htaccess wordpress'а:

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Насколько я понял тут и зарыта проблема, этот стандартный код удаляет из url "index.php". Верно?

А мне нужно сделать редирект со строй страницы:

site.ru/index.php?rad=3

на новую:

site.ru/url55/

В конец своего файла добавляю такую строку:

Redirect 301 /index.php?rad=3 http://site.ru/url55/

И не работает :(

Редиректит на:

/?rad=3

Т.е. первая часть стандартного кода я так понимаю удаляет из url "index.php" и редирект работает неправильно.

Помогите)

siv1987
На сайте с 02.04.2009
Offline
427
#1
by_roXe:
В конец своего файла добавляю такую строку:
Redirect 301 /index.php?rad=3 http://site.ru/url55/

И не работает

И не будет.

По хорошему нужно писать отдельный массив с редиректами и проверять в коде если объявлен параметр $_GET['rad'], и есть такой элемент массива, или запись в бд делать редирект.

В htaccess это будет так

после RewriteEngine On добавить

RewriteCond %{QUERY_STRING} =rad=1

RewriteRule ^index\.php /newurl1/? [R=301,L]

RewriteCond %{QUERY_STRING} =rad=2

RewriteRule ^index\.php /newurl2/? [R=301,L]

и так для каждой записи.

[Удален]
#2
siv1987:
И не будет.
По хорошему нужно писать отдельный массив с редиректами и проверять в коде если объявлен параметр $_GET['rad'], и есть такой элемент массива, или запись в бд делать редирект.

В htaccess это будет так
после RewriteEngine On добавить
RewriteCond %{QUERY_STRING} =rad=1
RewriteRule ^index\.php /newurl1/? [R=301,L]
RewriteCond %{QUERY_STRING} =rad=2
RewriteRule ^index\.php /newurl2/? [R=301,L]

и так для каждой записи.

В этой ситуации, лучше это будет сделать в php через header

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий