我为我的网站创建了名为mobile
的子域名cPanel。我将移动设备重定向到该子域,但是那里存在一个使得AJAX调用实际域的JavaScript。我已将这些呼叫结构化为website.com/mobile/...
。但是,这些都没有通过,我怀疑这是因为它在我的/mobile
中寻找...
,但该请求应该被重写为.htaccess到website.com/index.php?params=mobile/...
。子域名接管域名请求
这里的的.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]
此作品在我的本地机器上而不是活的服务器上。我已经通过
<VirtualHost *:80>
DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/website/mobile"
ServerName mobile.website.local
</VirtualHost>
创建sudomain本地和它完美的作品:当我去mobile.website.local
或website.local/mobile
,我得到的移动网站,而当我去website.local/mobile/users/login
我得到了AJAX请求的正确JSON输出。
如何让我的mobile
子域在/mobile/
中保持活动状态,但请求website.com/mobile/...
与最后一个重写规则一起转发?
谢谢!
谢谢回应:)不幸的是,请求仍然没有通过。我也尝试在我的其他重定向之前放置重定向,但这也不起作用。 – Garrett 2012-04-17 22:01:39
你好,我一直在做一些测试,它看起来工作,你把代码之前的文件/目录声明?我会做更多的测试,我会很快回复你。 – 2012-04-17 22:11:04
Hello @Garrett,你可以再次测试htaccess文件吗?我刚刚用一个新文件编辑我的文章。 – 2012-04-17 22:52:42