@16Gb

Как сделать редирект с htaccess c get параметрами?

Пытаюсь сделать редирект с 1 ссылки на вторую, но сайт даже не реагирует
/forum/46-24786-1

/forum/index.php?threads/46/24786/page-1

RewriteRule ^forum/([^&]+)-([^&]+)-([^&]+)$ /forum/index.php?threads/%1/%2/page-%3 [L,R=301]

Вот моя попытка
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@16Gb Автор вопроса
/forum/46-24786-1
/forum/index.php?threads/46/24786/page-1

46 это номер раздела
24786 номер треда
1 номер страницы

я просто хотел передать эти параметры

это не работает, редиректа не происходит
RewriteRule ^forum/([^&]+)-([^&]+)-([^&]+)$ /forum/index.php\?threads/$1/$2/page-$3 [L,R=301]

если вставляю
RewriteCond %{REQUEST_URI} forum/([^&]+)-([^&]+)-([^&]+)
RewriteRule forum .*$ /forum/index.php?threads/%1/%2/page-%3
то ошибка 500 стразу

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]


вот весь мой htaccess

RewriteRule ^forum/46-24786-1$ /forum/index.php?threads/46/24786/page-1 [L,R=301]

даже такой прямой без параметров не работает

СДЕЛАЛ ТАК
RedirectMatch 301 ^/forum/(\d*)-(\d*)-(\d*)$ /forum/index.php?threads/$1/$2/page-$3
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
так бы выглядел редирект С гет параметра на обычный урл.
# 301 --- http://www.mydefile.ru/lookbook/?type=Лукбуки&PAGEN_1=2 => http://www.mydefile.ru/news/lookbooks/
RewriteCond %{QUERY_STRING} (^|&)type=Лукбуки($|&)
RewriteCond %{QUERY_STRING} (^|&)PAGEN_1=2($|&)
RewriteRule ^lookbook/$ /news/lookbooks/? [L,R=301]

В твоем случае наоборот тут все еще значительно проще, ты просто перепутал % и $
RewriteRule ^forum/([^&]+)-([^&]+)-([^&]+)$ /forum/index.php\?threads/$1/$2/page-$3 [L,R=301]

И не забудь экранировать вопрос
А проценты делаются так
RewriteCond %{REQUEST_URI}  forum/([^&]+)-([^&]+)-([^&]+)
RewriteRule forum .*$ /forum/index.php?threads/%1/%2/page-%3

ТАк же их можно комбенировать скобки из рула и конда
тогда будет так
$1%1
Теперь по поводу регулярки что-то она у тебя очень странная. что именно она по твоему мнению делает ?
Скинь пару урлов которые она должна выделять
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
WakeApp Москва
от 70 000 руб.
QRate Москва
от 120 000 руб.
от 50 000 до 90 000 руб.
15 авг. 2018, в 18:50
750 руб./в час
15 авг. 2018, в 18:48
45000 руб./за проект
15 авг. 2018, в 18:14
800 руб./за проект