0

У меня длинный URL-адрес с унаследованного веб-сайта, который мне нужен 301, например: domain.com/web/vehicle/655520/2007-Hummer-H2---? sort_by = год & арг = All_years - All_makes - All_models - All_body_types - All_vehicles.htaccess - нужно 301 URL со специальными символами

Мне нужно перенаправить это (и еще много подобных URLs) на новую страницу, на обновленный веб-сайт, страница пример: domain.com /hummer.php

Как вы удаляете специальные символы (например,?) и все остальное из URL-адреса, чтобы я мог успешно использовать 301?

ответ

0

Вы не можете «стричь» что-либо с помощью mod_rewrite.
Вы можете создавать ссылки только от частей строки и использовать их для создания нового URL-адреса.

Как вы можете это сделать, это зависит от того, какой url вы хотите построить из исходного URL-адреса.

0

Зачем вам это нужно? Если вы не планируете кодировать длинный длинный список переадресаций в ваш файл .htaccess, вы должны делать все свои переадресации на PHP.

Из примера URL, который вы указали, я предполагаю, что у всех элементов есть уникальный идентификатор, привязанный к URL уже. В этом случае вы можете создать карту в своей базе данных, в которой говорится, что «правильный» URL-адрес для элемента 655520 - hummer.php. Вы можете использовать это для выполнения перенаправления с PHP.

Вот пример того, как вы можете это сделать. Я исхожу из предположения, что у вас уже есть файл .htaccess, который переводит URL в GET. Что-то вроде RewriteRule ^(.*)$ index.php?request=$1 [L,QSA]

//determine if you were passed a "legacy URL" (not shown) 
if (legacyURL) { 
    $urlComponents = $explode("/", $_GET['request']); 
    $url = getItemUrl($components[2]); 
    header("Location: " . $url,TRUE,301); 
    exit(); 
} 
Смежные вопросы