Как перенаправить пользователей на сайт рабочего стола, если файлы не существуют на мобильном сайте?

Я создал www.example.com а также m.example.com, m.example.com проживает внутри htdocs/m/ папка. Я использую приведенные ниже коды в .htaccess:

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]

#mobile
RewriteCond %{HTTP_HOST} ^m\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/m(/|$) [NC]
RewriteRule ^(.*)$ m/$1 [L]

# Resolve .php file for extension-less php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

Теперь, если пользователи нажали m.example.com/abc и если abc файлы не существуют, он будет перенаправлять пользователей на страницу ошибки, так как у меня есть код ниже на .htaccess код внутри htdocs/m/ папка

ErrorDocument 404 http://m.example.com/error

Но теперь я хочу, чтобы пользователи были перенаправлены на www.example.com/abc вместо этого, как abc может быть действительным файлом в настольной версии. Только если файлы также не существуют на рабочем столе сайта, пользователи будут перенаправлены на страницу ошибки.

1

Решение

Вы можете разместить это правило как первое правило в DocumentRoot из m.example.com:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}\.php !-f
RewriteRule ^(.+)$ http://www.example.com/$1 [L,R=302]
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]