Intereting Posts

Динамические перезаписи в файле htaccess

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

Таким образом, старый (существующий) URL-адрес выглядит так:

/news/internet-shopper-numbers-continue-to-grow-$21378232.htm 

и новый URL-адрес будет выглядеть так:

 /industry-news/small-business-website-design/internet-shopper-numbers-continue-to-grow/800715788 

В старом URL internet-shopper-numbers-continue-to-grow адресе internet-shopper-numbers-continue-to-grow динамически генерируется, где, как и в новом URL small-business-website-design адресе small-business-website-design , номера internet-shopper-numbers-continue-to-grow , и 800715788 – все динамически генерироваться.

Поэтому моя проблема заключается в том, как я могу получить от 1 URL-адрес другому, если доступно только 1 из динамически сгенерированных переменных.

Я думал, возможно, было бы неплохо сделать перенаправление PHP вместо этого, где я могу получить данные из процесса URL через базу данных, чтобы получить все данные, необходимые для создания нового URL-адреса, но я не уверен, что это хорошая практика , это также означает, что нужно сопоставить старый каталог файлов URL, который не является текущим.

Я предполагаю, что начинаю с чего-то вроде этого:

 Options +FollowSymlinks RewriteEngine On RewriteCond /news/%{QUERY_STRING}(.)(\\d+)(.)(htm)$ RewriteRule ^industry-news/(.+)/%1/(\d{9}) 

Я знаю, что это очень просто и неправильно, но я работаю над этим в первый раз, и я в тупике.

– дополнительный вопрос –

могу ли я сделать что-то подобное?

 RewriteCond /new/%{QUERY_STRING}(.)(\\d+).htm$ RewriteRule ^industry-new/article/article.php?direct=%1 

Я не знаю, как это проверить на самом деле, но будет ли это работать?

Да, это определенно хорошая идея делать все перенаправления в php. Просто у вас есть простой «catch-all» .htaccess

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php 

затем преобразуйте URL-адреса, как вы хотите в php, и при необходимости отправьте заголовок местоположения. Может быть хорошей идеей добавить 301 код состояния для «старых» URL-адресов.