I’ve created a subdomain called mobile for my website throuch cPanel. I redirect mobile devices to that subdomain, but there is javascript that lives there that makes AJAX calls to the actual domain. I have structured these calls to go to website.com/mobile/.... However, these aren’t going through, and I suspect that it’s because it is looking for ... in my /mobile, but the request is supposed to be rewritten in .htaccess to website.com/index.php?params=mobile/....
Here’s the .htaccess:
# redirect phones/tablets to mobile site
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteCond %{HTTP_HOST} !mobile\.website\.com [NC]
RewriteCond %{REQUEST_URI} !^/mobile [NC]
RewriteRule ^(.*)$ http://www.mobile.website.com/$1 [L,R=302]
# not a file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# website.com/home => website.com/index.php?params=home
RewriteRule ^(.+)(\?.+)?$ index.php?params=$1 [L,QSA]
This works on my local machine but not on the live server. I have created a sudomain locally via
<VirtualHost *:80>
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/website/mobile"
ServerName mobile.website.local
</VirtualHost>
and it works perfectly: when I go to mobile.website.local or website.local/mobile, I get the mobile site, and when I go to website.local/mobile/users/login I get the correct JSON output for the AJAX request.
How can I keep my mobile subdomain alive in /mobile/ but have requests to website.com/mobile/... be forwarded with the last rewrite rule?
Thanks!
Just add the specific redirect for your /mobile, forcing to ignore the file or directory statement:
Anything let me know and I’ll see if I can help 🙂