Я попытался применить другие ответы, найденные в StackOverflow, но ничего не получилось.
У меня есть старые ссылки в Google, которые посещают люди, но структура моей страницы изменилась, и если люди называют эти ссылки, страница будет отображаться испорченной.
У меня есть такие ссылки:
/PIXMA/Canon-PRINT-Inkjet/SELPHY-664425773 /PL/SQL-Timestamp/Dawsons-Integral-Calculator-903670995 /--/-HDPrime-Dictionary-EK/두산동아-중학교-교과서2007개정-교육-과정-429617286
Я хочу сохранить только последнюю часть за последней косой чертой, например:
/SELPHY-664425773 /Dawsons-Integral-Calculator-903670995 /두산동아-중학교-교과서2007개정-교육-과정-429617286
Теперь мой htaccess выглядит следующим образом:
AddDefaultCharset utf-8 RewriteEngine On Options +FollowSymlinks RewriteRule ^robots\.txt$ robots-subdomains.txt #ErrorDocument 404 /404.php RewriteRule ^cat/([a-zA-Z_-]+)/([0-9]+)$ /404.php [NC] RewriteRule ^cat/([a-zA-Z_-]+)$ /404.php [NC] RewriteRule ^grossing/([a-zA-Z_-]+)/([0-9]+)$ /404.php [NC] RewriteRule ^app/([a-zA-Z_-]+)/([a-zA-Z0-9_-]+)/([0-9]+)$ /$2-$3 [R=301,NC] #This is the final output RewriteRule ^(.+)-([0-9]+)$ appsite.php?title=$1&id=$2
Как видите, уже есть некоторые правила перезаписи, которые я хочу перенаправить на 404. Это не проблема.
Я хочу перенаправить неверно отформатированные, но все еще существующие URL-адреса перенаправлять на сайты, отформатированные как последняя строка в htaccess.
Проблема в том, что я не знаю текстов и форматирования (количество слэшей) в URL-адресе, потому что они были созданы «на лету». Единственная определенная вещь – последняя часть URL-адреса за последней косой чертой.
Может ли кто-нибудь сказать мне, как отрезать все до последней косой черты?
Это можно сделать, используя:
RewriteRule ^.*/([^/]+-[0-9]+)$ /$1 [R=301]
Это будет перенаправлять каждый запрос, когда URL-адрес заканчивается чем угодно – NUMBER, например, www.example.com/xxx/yyy/foobar-123
-> www.example.com/foobar-123
[R=301]
заставит перенаправление с HTTP 301 «Перемещено навсегда». Это скажет всем поисковым системам, что они должны удалить старые URL-адреса и вместо этого использовать новые.