Пренасочване с php и htaccess

Msecurity

Registered
Здравейте,
в момента всички урл адреси са така
/категория/подкатегория/име-на-нещо-си
- като така си се генерираха , и въпроса е: има ли как чрез php или htaccess да премахна всичко преди /име-на-нещо-си и да пренасоча без да имам умрели линкове.
пп: не е идея едно по едно да пренасочвам защото са близо 30 000 линка...
 
Принципно става със 301 пренасочване, пишеш система за SEO и тя има базаданни сега въпроса е твойте адреси къде се складират ако са във базаданни пишеш система да направи на всичките препращане 301 ако искаш сео-то да се запази!
 
Дам, но въпроса ми беше друг:
Старият урл адрес е :
категория/под-категория/фирма, а новият е само /фирма, как трябва да напиша заявката в htaccess за да пренасочва с 301 от старият към новият урл адрес без да имам умрели линкове?
 
Msecurity каза:
Дам, но въпроса ми беше друг:
Старият урл адрес е :
категория/под-категория/фирма, а новият е само /фирма, как трябва да напиша заявката в htaccess за да пренасочва с 301 от старият към новият урл адрес без да имам умрели линкове?

Вече съм го позабравил, но това трябва да е доста близо до истината:

Код:
RewriteEngine On
RewriteRule ^[^/]+/[^/]+/([^/\.]+)$ /$1 [R=301,L]

Като съм приел, че "фирма" няма да съдържа точки - за да можеш да си зареждаш .js/.css файлове свободно.
 
А дали няма да е проблем че преди това имам:
Код:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/(.*)$ /index.php?lang=$1&route=$2 [L]
 
Msecurity каза:
А дали няма да е проблем че преди това имам:
Код:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/(.*)$ /index.php?lang=$1&route=$2 [L]

Проблем е. Щото всичко преди първата наклонена черта автоматично го броиш за езикова променлива и изобщо няма да стигнеш дотам да гледаш дали има категория/подкатегория. То логически няма как да стане. Защо не разкараш езика от урл-то и не го държиш в бисквитките?

И изобщо как си представяш разликата между категория/подкатегория/нещо и език/нещо? То първото е частен случай на второто, тоест на теб винаги ще ти минава проверката на първото и няма да стигаш до второто.

Просто вземи това урл:

Код:
example.com/en/first/second

htaccess откъде да знае дали:

en и first са съответно категория и подкатегория
или
en e eзик а first e route?
 

Горе