Я новичок в mod_rewrite и мне нужно что-то сделать для своего клиента.Как перенаправить старые «уродливые» URL-адреса на seo-friendly?
Предположим, у меня есть www.mydomain.com/products.php?prod_id=32.
Этот продукт имеет раздел (одежда) и имя (рубашка). Эти имена и разделы уникальны.
В SEO-Friendly Url это должно быть www.mydomain.com/products/clothes/shirt/.
Я знаю, что могу создать
RewriteRule ^products/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ products.php?section=$1&name=$2
Я могу сделать это, и это работает. Но я хочу, чтобы люди, которые вошли на сайт www.mydomain.com/products.php?prod_id=32, перенаправлялись на сайт www.mydomain.com/products/clothes/shirt/ (измененный в самом браузере). Как я могу это сделать, не вставляя идентификатор в свой url? Можно ли вызвать «предварительную обработку» php-файла в моем .htaccess и воссоздать «products.php? Section = $ 1 & name = $ 2»?
У кого-нибудь есть хорошая ссылка с действительно подробным объяснением mod_rewrite?
Спасибо!
Я думаю, что я понял ваше решение: создайте регулярное выражение, соответствующее «products.php? Prod_id = 32», которое перенаправляется, например, на «fix_old_url.php? Prod_id = 32». Внутри fix_old_url.php я извлекаю «одежду» и «рубашки» из запроса, используя этот идентификатор. После этого я перенаправляюсь на/одежду/рубашки/на php. Есть ли разница с точки зрения SEO в использовании перенаправления PHP вместо перенаправления apache? –
Браузер (или поисковый робот) увидит одно и то же из перенаправления. Вы не можете сказать извне сервера, как вы его реализовали. –
Я тоже пытаюсь понять поток ... предположим, что это пользователь. браузер -> products.php? prod_id = 32 -> apache -> fix_old_url.php -> браузер -> apache ->/products/clothes/shirt/-> products.php? prod_id = 32. Правильно ли это? –