Перенаправление из-за изменения маршрута в унифицированном указателе ресурса в htaccess

я пробую менять url моего Веба и не могу встретить кода, который нужно помещать в htacces для того, чтобы он был сделан правильно. Эта - унифицированный указатель ресурса старуха:

www.mmisitio.com/griferia/roca/grifo-doble-canal-251-5.html

И это - то, что мне хотелось бы, что он вышел:

www.mmisitio.com/grifos/roca/grifo-doble-canal-251-5.html

Это была бы основная структура моего Веба: www.mmisitio.com/griferia/roca/grifo-doble-canal-251-5.html www.mmisitio.com/griferia/teka/grifo-canal-sencillo.html www.mmisitio.com/griferia/jacob/grifo-barato-5.html www.mmisitio.com/valvulas/metal/valvula-pila.html www.mmisitio.com/valvulas/plastico/valvula-cisterna.html www.mmisitio.com/tornilleria/laton/tornillo-plano-7.html www.mmisitio.com/tornilleria/acero/rosca-plancha-8.html

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

Это код htaccess, что у меня есть в моем Вебе:

**RewriteBase /
Options +FollowSymlinks
RewriteEngine on
Redirect 301 /griferia/ www.misitio.com/grifos/-------------he quitado el http
RewriteCond %{HTTP_HOST} ^misitio.com [NC]
RewriteRule ^(.*)$ www.misitio.com/$1 [L,R=301]--------------he quitado el http
RewriteRule ^(.+)/(.+).html$ ver_producto.php?recordID=$2
RewriteRule ^(.+)/$ categorias_ver.php?cat=$1
RewriteRule ^(.+)/(.+)/$ categorias_ver.php?cat=$2
errorDocument 404 /error404.php**

Чтобы видеть перенаправление он делает ее мне и я перехожу с одного сайта на другой в Вебе спокойно, но если я посещаю сайт, где он имел ссылку по отношению к этому продукту, он бросает мне такой url как эта:

www.misitio.com/grifos/roca/grifo-doble-canal-251-5.html?recordID=grifo-doble-canal-251-5`

Когда она была бы должна выходить только этой:

www.misitio.com/grifos/roca/grifo-doble-canal-251-5.html

Я надеюсь, что понимают хорошо, и что кто-то такой любезный давания мне какой-то ориентации, где идет тема. Большое спасибо и приветствие.

1
задан 24.03.2016, 17:28
3 ответа

Я предлагаю тебе не перемешивать mod_alias и mod_rewrite. mod_rewrite у него есть первенство, означай, что все твои RewriteRules будут работать перед Redirect, с griferia/etcétera... и они вновь работают снова после Redirect, с grifos/etcétera.... Ты можешь делать redirect с mod_rewrite, чтобы предотвращать возвращение, например:

RewriteRule ^griferia/(.+)$ grifos/$1 [L,R=301]

Redirect посылает querystring клиенту, потому что rewriterules уже это построили в момент Redirect, поэтому ты видишь такие унифицированные указатели ресурса:

...roca/grifo-doble-canal-251-5.html?recordID=grifo-doble-canal-251-5

с параметрами, прикрепленными к .html.

1
ответ дан 24.11.2019, 14:41

Если то, что ты хочешь сделать, состоит в том, чтобы соединения снаружи, они ты пошли к новому Дружескому, равному URL, более желательно делать redirect 301. Таким образом, все соединения, они войдут в нее versiГіn предыдущий и они идут пересылать в новость, не теряя ни движения ни позиции.

того, что я не могу гарантировать тебе, состоит в том, чтобы оно ты функционировало характерным способом с регулярными выражениями, так как никогда я это не пробовал asГ-.

Мой вход для redirect 301

redirect 301 direccion_vieja direccion_nueva
0
ответ дан 24.11.2019, 14:41

Подтверди, что у тебя есть казначей mod_rewrite: если у тебя есть контроль на сервере, ты можешь делать это (как root) с a2enmod rewrite, если у тебя не будет контроля на сервере, ты будешь должен просить, чтобы они этому дали возможность (если он это не).

Команда:

Redirect 301 /griferia/ http://www.misitio.com/grifos/

Таким образом, redireccionará любой url как http://www.misitio.com/griferia/dondesea в http://www.misitio.com/grifos/dondesea. Но оно не будет функционировать с http://www.misitio.com/griferia (из-за того, что не имеет конечного бруска). Я это подтвердил на моем собственном сервере без проблемы.

Ты должен помещать протокол ("http://"), если он не может интерпретировать адрес доставки относительным и удваивать доменное имя.

0
ответ дан 24.11.2019, 14:41