m.example.com не будет правильно перенаправлять

0

Я пытаюсь сделать довольно URL для моего мобильного сайта. У меня есть рабочий сайт для рабочего стола и даст пользователю возможность ввести мобильную версию.

У меня есть php файл под названием mobile.php в том же каталоге, что и index.php. параметры сайтов будут одинаковыми. параметры для настольной версии работают нормально, но. Если я вхожу в m.example.com, он пойдет на мою настольную версию, однако, если я войду в m.example.com/something, он перейдет на мобильную версию.

    # changing www to nonwww
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#redirect for the mobile site
RewriteCond %{HTTP_HOST} ^m.example.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI}  ^/([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/?   [NC]
RewriteRule ^(.*)$ mobile.php?site=%1&brand=%2&model=%3&repid=%4 [L]



#redirect for dekstop.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/?   [NC]
RewriteRule .*    index.php?site=%1&brand=%2&model=%3&repid=%4  [L]

более того. Когда я на мобильном сайте, я пытаюсь ссылаться на мои ресурсы src= "/image.png". на рабочем столе он будет работать нормально, но mobilesite сделает url для файла m.example.com/image.png и не сможет найти ресурсы. Я обошел, введя весь URL, но хотел бы использовать другой способ.

Надеюсь, кто-то может помочь мне в этом;)

Теги:
.htaccess
redirect
mobile

1 ответ

0
Лучший ответ

Похоже, преступник - это ваше второе правило, которое не соответствует URI целевой страницы /, попробуйте следующее:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#redirect for the mobile site
RewriteCond %{HTTP_HOST} =m.example.com
RewriteRule ^/?$ mobile.php [L]

RewriteCond %{HTTP_HOST} =m.example.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/? mobile.php?site=$1&brand=$2&model=$3&repid=$4 [L,QSA]

#redirect for dekstop.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?([^/]*)?/?([^/]*)?/?([^/]*)?/?  index.php?site=$1&brand=$2&model=$3&repid=$4 [L,QSA]

Ещё вопросы

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