Я пытаюсь сделать довольно 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, но хотел бы использовать другой способ.
Надеюсь, кто-то может помочь мне в этом;)
Похоже, преступник - это ваше второе правило, которое не соответствует 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]