htaccess переписать RegEx добавить статическое значение между параметрами - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь переписать URL с помощью htaccess.Длина URL запроса является переменной.Он состоит из следующего:

http://[domain.com]/[countrycode]/[main-category]/[sub-category]/[sub-sub-category]/[product-name].html

Конечно, он также может иметь меньше категорий.

Другой вариант - только страница продукта, например: http://[domain.com]/[countrycode]/[product-name].html

Iхотите переписать эти URL и добавить статическое значение между [кодом страны] и остальной частью пути URL.Кроме того, я хочу изменить .html на .aspx в конце каждого переписанного URL.

Я дошел до того, что смог переписать URL только с основной категорией, такой как: http://example.com/en/main-category сэтот htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{HTTP_HOST} ^(.*)example\.com [NC]
RewriteRule ^(.*)/(.*)$ https://example.com/$1/3/$2.aspx [R=301]

Но если URL содержит косую черту или несколько категорий, статическое значение («3») добавляется в неправильном месте.

, чтобы быть понятным, яхочу эту структуру:

запрос: http://example.com/en/main-category/sub-category/product-name.html

переписан: https://example.com/en/3/main-category/sub-category/product-name.aspx

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 22 мая 2018

Вы можете использовать это правило в корне сайта .htaccess:

RewriteEngine On

RewriteRule ^([a-z]{2})/(?!3/)(.+)\.html$ https://%{HTTP_HOST}/$1/3/$2.aspx [L,NC,NE,R=301]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...