Замените слово в URL перед перенаправлением на мобильный с htaccess

1

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

Например, http://www.example.com/reportage/2000 изменить на m.example.com/post/2000

Это мой код htaccess для перенаправления.

RewriteRule ^admin($|/) - [L]

# Check if this is the noredirect query string
#RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
# Set a cookie, and skip the next rule
#RewriteRule ^ - [CO=mredir:0:www.example.com]

# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]

# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]

# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [S=1]

# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
RewriteCond %{HTTP:Profile}       !^$

# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST}          !^m\.
# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie}        !\mobile=0(;|$)
# Now redirect to the mobile site
#Redirect 301 ^/photoreportage /post
RewriteRule ^ http://m.example.com%{REQUEST_URI} [R,L]
  • 3
    Возможный дубликат Mobile Redirect с использованием htaccess
  • 0
    Это не дубликат, потому что мне нужно изменить слово в URL перед перенаправлением, в чем смысл.
Показать ещё 2 комментария
Теги:
.htaccess

1 ответ

0

Попробуй это:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^m.example.com$ [NC]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
RewriteRule ^reportage/(.+)$   http://m.example.com/post/$1   [L]

Примечание. Я не тестировал выше, если вы считаете, что он не работает, не стесняйтесь комментировать

Для изменения:

www.mysite.com/en/photoreportage/5000 

Для:

m.mysite.com/en/post/5000

пытаться:

RewriteEngine On
    RewriteCond %{HTTP_HOST} !^m.example.com$ [NC]
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera mobile|palmos|webos" [NC]
    RewriteRule ^photoreportage/(.+)$   http://m.example.com/en/post/$1   [L]
  • 0
    Спасибо @Akhil, но если мой URL-адрес такой, www.mysite.com/en/photoreportage/5000, и я хочу, чтобы он был m.mysite.com/en/post/5000. В этом случае что мне делать?
  • 0
    обратитесь к примеру, который я привел, постарайтесь понять, что я делаю, измените его в соответствии с вашими потребностями
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню