#.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
, что позволило мне получить дополнительные проблемы с автозаполнением.