Я новичок в .htaccess
. Я прочитал документацию, но не смог заставить правило перенаправления работать.
Я хочу RewriteRule
для следующих
http://mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
в
http://mywebsite.com/restaurants/the-grounds-of-alexandria
Я пробовал это
RewriteRule ^(.*)/[0-9]/(.*)$ ^(.*)/(.*)/$ [R=301,L]
Также как можно получить субдомен и поместить его в начало всех ссылок, например
http://sydney.mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
в
http://mywebsite.com/sydney/restaurants/the-grounds-of-alexandria
но результата нет.
Перепишите это просто:
http://mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
to
http://mywebsite.com/restaurants/the-grounds-of-alexandria
Правило rewrite RewriteRule ^(.*)/[0-9]/(.*)$ ^(.*)/(.*)/$ [R=301,L]
слишком глобально для URL-адресов. Во-вторых, вы просто говорите [0-9] со средствами только одной цифры.
RewriteRule ^([^/]+)/[0-9]+/([^.]+)\.htm$ /$1/$2 [R=301,L]
Попробуй это ;)
Изменить (для второго вопроса):
http://sydney.mywebsite.com/restaurants/59393/the-grounds-of-alexandria.htm
to
http://mywebsite.com/sydney/restaurants/the-grounds-of-alexandria
Конечно;) Там вам нужно работать с RewriteCond.
RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([^\.]+)\.mywebsite\.com/([^/]+)/[0-9]+/([^.]+)\.htm
RewriteRule ^.*$ http://mywebsite.com/%1/%2/%3 [R=301,L]
Для пояснения,% 1-3 можно использовать из предыдущего совпадения, которое будет использоваться в Заключении RewriteRule. Это должно работать для каждого поддомена и только для поддоменов. Если вы хотите ^(sidney|othersubdomain|anothersubdomain)\.mywebsite\.com...
конкретный субдомен, вы можете настроить первую строку на ^(sidney|othersubdomain|anothersubdomain)\.mywebsite\.com...