Было бы довольно легко для вас, чтобы переписать из
http://www.website.com/product/sony-tv-42-inch
в
http://www.website.com/product/sony-tv-42-inch
, но что дополнительные/собирается представить проблема.
Как уже упоминалось некоторыми другими, вы наверняка хотите 301 для целей SEO, поэтому вот что я хотел бы сделать.
Шаг 1 - Получить текущий URLS:
Получить список всех существующих почтовых постоянных ссылок. Этот SQL-запрос для MySQL на David George должен сделать трюк.
SELECT wpp.post_title,
wpp.guid,
wpp.post_date,
CONCAT
(
wpo_su.option_value,
REPLACE
(
REPLACE
(
REPLACE
(
REPLACE
(
wpo.option_value,
'%year%',
date_format(wpp.post_date,'%Y')
),
'%monthnum%',
date_format(wpp.post_date, '%m')
),
'%day%',
date_format(wpp.post_date, '%d')
),
'%postname%',
wpp.post_name
)
) AS permalink
FROM wp_posts wpp
JOIN wp_options wpo
ON wpo.option_name = 'permalink_structure'
AND wpo.blog_id = 0
JOIN wp_options wpo_su
ON wpo_su.option_name = 'siteurl'
AND wpo_su.blog_id = wpo.blog_id
WHERE wpp.post_type = 'post'
AND wpp.post_status = 'publish'
ORDER BY wpp.post_date DESC
Шаг 2 - сохранить его для последующего использования: Теперь, когда у вас есть этот список дамп в столбец Excel для последующего использования.
Шаг 3 - Отформатируйте его для PHP: Возьмите все URL-адреса и выгрузите их в блокнот ++ или аналогичный. В окнах нажмите cntrl + H, чтобы вызвать функцию поиска/замены. Убедитесь в том, чтобы выбрать «Режим поиска» -> «Extended»
для «Find What» вы должны поставить в \ г \ п и «Заменить на» вы должны поставить в , и нажмите «Заменить все ».
Теперь у вас должен быть список всех ваших URL-адресов, разделенных запятой.
Шаг 4 - Создание PHP файла:
Создайте новый PHP-файл и установить:
<?php
$urlString = "http://www.urlsample1.com/article/sony-thing-and-stuff, http://www.urlsample1.com/article/warner-brothers-stuff";
//this will replace the word article with the word product
$newstring = str_replace("article", "product", $urlString);
//turns string into array
$myArray = explode(',', $newstring);
//loops through array to find first case of - and turn it to a/
for ($i = 0; $i < count($myArray); ++$i) {
$haystack = $myArray[$i];
$needle = "-";
$replace = "/";
$pos = strpos($haystack, $needle);
if ($pos !== false) {
$finalstring = substr_replace($haystack, $replace, $pos, strlen($needle));
}
//removes common url elements
$newShort = str_replace("http://www.urlsample1.com", "", $finalstring);
$oldShort = str_replace("http://www.urlsample1.com/product", "/article", $myArray[$i]);
//prints out the old and new url in .htaccess format
print("Redirect 301 " . $oldShort . " " . $newShort . "</br>");
};
?>
Шаг 5 - .htaccess
Ваш выход из выше должен выглядеть например:
Redirect 301 /product/sony-thing-and-stuff /product/sony/thing-and-stuff
Redirect 301 /product/warner-brothers-stuff /product/warner/brothers-stuff
и может быть помещен в файл .htaccess.
Примечание: этот метод может стать медленным с Apache и не является предпочтительным, но это самый быстрый способ, который я могу придумать, чтобы запустить и запустить ваш клиент в новой ситуации.
Вы также можете использовать Regex для обработки его из одного перенаправления. Это будет \/[article] {1,} \ /, чтобы выбрать статью и изменить ее на «продукт», но я не уверен, что Regex обрабатывает только первый экземпляр «-», а не выбирать все из них. Вот почему я выбрал этот метод. Если вы более знакомы с регулярным выражением, вы можете сделать одно правило повторной записи. – AdamSC