301 динамическая переадресация URL на новые динамические ссылки

Прежде всего, я пытаюсь найти решение уже в темах, но не нашел ничего похожего на мою проблему, поэтому я решил спросить здесь. Я начинающий, когда дело доходит до htacces и динамических перенаправлений, поэтому я надеюсь, что узнаю об этом больше с вашей помощью.

Мне нужно перенаправить мои старые динамические URL-адреса в новый формат URL с перенаправлением 301 в htaccess.

У меня есть БД со списком городов в формате:

http://www.exampledomain.com/city/1_NewYork/

Я хочу изменить свои URL-адреса на новый формат, как пример ниже:

http://www.exampledomain.com/1_NewYork/

У меня более 300 городов в базе данных, и я хочу перенаправить старые URL-адреса в новый формат с помощью перенаправления 301 автоматически, поэтому мне не нужно вводить ручные перенаправления 301 в htaccess для каждого города.

Текущий Htaccess:

RewriteEngine On

RewriteRule ^ город / ([-]? [0-9] +) ([-_] [^ /] *)?
index.php? = вид главной&cityid = 1 доллар США [QSA]


Извините за мой английский, я знаю, что это не самый лучший 🙂

Заранее спасибо.

2

Решение

Вы можете использовать это правило в качестве самого первого правила перед другими правилами:

RewriteEngine On

RewriteRule ^city/([^/]+)/?$ /$1 [L,NC,R=302]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?view=main&cityid=$1 [L,QSA]
1

Другие решения

Вы можете попробовать это для перенаправления:

Redirect 301 / city / 1_NewYork / / 1_NewYork /

0

Ты можешь использовать RedirectMatch за это.

RedirectMatch 301 /city/(.*) /$1

и замените правило перезаписи на

RewriteRule ^([-]?[0-9]+)([-_][^/]*)? index.php?view=main&cityid=$1 [QSA]

Увидеть http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch

0
По вопросам рекламы [email protected]