Я работаю над некоторыми переписываниями и перенаправлениями в файле htaccess. Моя причина для этого заключается в том, что я разрабатываю новый дизайн и макет для существующего веб-сайта, поэтому мне нужно перенаправить, чтобы сохранить рейтинг Google и т. Д.
Таким образом, старый (существующий) URL-адрес выглядит так:
/news/internet-shopper-numbers-continue-to-grow-$21378232.htm
и новый URL-адрес будет выглядеть так:
/industry-news/small-business-website-design/internet-shopper-numbers-continue-to-grow/800715788
В старом URL internet-shopper-numbers-continue-to-grow
адресе internet-shopper-numbers-continue-to-grow
динамически генерируется, где, как и в новом URL small-business-website-design
адресе small-business-website-design
, номера internet-shopper-numbers-continue-to-grow
, и 800715788
– все динамически генерироваться.
Поэтому моя проблема заключается в том, как я могу получить от 1 URL-адрес другому, если доступно только 1 из динамически сгенерированных переменных.
Я думал, возможно, было бы неплохо сделать перенаправление PHP вместо этого, где я могу получить данные из процесса URL через базу данных, чтобы получить все данные, необходимые для создания нового URL-адреса, но я не уверен, что это хорошая практика , это также означает, что нужно сопоставить старый каталог файлов URL, который не является текущим.
Я предполагаю, что начинаю с чего-то вроде этого:
Options +FollowSymlinks RewriteEngine On RewriteCond /news/%{QUERY_STRING}(.)(\\d+)(.)(htm)$ RewriteRule ^industry-news/(.+)/%1/(\d{9})
Я знаю, что это очень просто и неправильно, но я работаю над этим в первый раз, и я в тупике.
– дополнительный вопрос –
могу ли я сделать что-то подобное?
RewriteCond /new/%{QUERY_STRING}(.)(\\d+).htm$ RewriteRule ^industry-new/article/article.php?direct=%1
Я не знаю, как это проверить на самом деле, но будет ли это работать?
Да, это определенно хорошая идея делать все перенаправления в php. Просто у вас есть простой «catch-all» .htaccess
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php
затем преобразуйте URL-адреса, как вы хотите в php, и при необходимости отправьте заголовок местоположения. Может быть хорошей идеей добавить 301 код состояния для «старых» URL-адресов.