.htaccess два старых URL-адреса в один новый

#.htaccess

#.htaccess

Вопрос:

Я переписываю веб-сайт с большим кешем Google.

Итак, моя проблема в том, что старые ссылки должны быть доступны, но по новому URL. Я сижу с 8 часов, чтобы переписать URL-адреса с помощью htaccess… Но мне кажется, что это сложно для меня, так как я могу это сделать:

старый htaccess:

 RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*) https://example.com%{REQUEST_URI} [L,R=301]
RewriteRule ^banana/(.*).htm$ https://example.com/banana/index.php?id=$1 [R=301,L]
  

Пожелание будущей конфигурации:

 1. https://example.com/banana/Berlin.htm
2. https://example.com/banana/index.php?id=Berlin 

both leading to -->     https://example.com/banana.php?id=Berlin 
  

рабочий .htaccess для перезаписи 1:

 RewriteCond %{REQUEST_URI}  ^/banana           [NC]
RewriteRule /(.*) https://example.com/banana.php?id=$1 [R=301,L]
  

рабочий .htaccess для перезаписи 2:

 RewriteRule ^(.*) https://example.com%{REQUEST_URI} [L,R=301]
RewriteRule ^banana/(.*).htm$ https://example.com/banana.php?id=$1 [R=301,L]
  

Но либо я сталкиваюсь со слишком многими перенаправлениями, либо с неработающими перезаписями…

И когда я получил одну конфигурацию, работающую нормально, другой старый URL указывает на 404…

Заранее большое вам спасибо!

Комментарии:

1. вы пробовали перенаправление 301? Redirect 301 /banana/Berlin.htm https://example.com/banana/index.php?id=Berlin

2. пока нет, но это не приведет к перенаправлению на целевой URL example.com/banana.php?id=Berlin

3. конечно, это так. с помощью приведенной выше строки он перенаправит потребности в /banana/Berlin.htm -> https://examples.com/banana/index.php?id=Berlin перенаправлении, поскольку сначала указывается старый путь (не URL), который вы пытаетесь адресовать, а затем новый URL или путь. Файл .htaccess, конечно, должен находиться в корне веб-сайта. PS не перенаправляйте / переписывайте сайт на тот же URL. Вы заканчиваете цикл.

4. Привет, извините, да, конечно, это перенаправит, моя размещенная среда странно настроена… Я попытался через несколько часов после того, как узнал, что проблема, с которой я столкнулся, заключается в том, что целевой php-файл имеет то же имя, что и старый каталог. Итак, должен ли я переименовать banana.php в apple.php или есть какой-нибудь хороший трюк, чтобы заставить его работать? кстати, я отключил mod_speling , что позволило мне получить дополнительные проблемы с автозаполнением.