是否可以为移动版和桌面版提供相同的网址?我不是指一个响应式网站,而是一个完全独立的移动网站,拥有自己的index.php,css和js文件。
我希望该网址保持不变,如果用户从移动设备进入网站example.com
,则会重定向到相应的移动版索引,但网址仍然是example.com
而不是{ {1}}。
如何实现?
答案 0 :(得分:1)
答案是肯定的。
例如在Apache中,您可以使用mod_rewrite模块并将请求重定向到不同的index.php
文件,具体取决于客户端用户代理。
示例:
RewriteCond %{HTTP_USER_AGENT} "..." [NC]
RewriteRule .* mobile.php [L]
RewriteRule .* desktop.php [L]
此外,您可以使用一个index.php
作为入口点,但您可以根据客户端用户代理加载不同的模板(主题)。
答案 1 :(得分:1)
就我个人而言,我建议在apache环境中搜索以存档您的目标。基本上,您只想将用户重定向到不同的虚拟主机,并且您希望设备检测选择正确的虚拟主机。如果我错了请纠正我。 我将链接一个简短的here,你可以在那里找到一个详细的教程来完成这项工作。 现在,您只需要在vhost配置中使用一个好的重写规则来保持域不变。 Deep tutorial about rewriterules
答案 2 :(得分:1)
如果您已经为两个站点使用前置控制器。
您可以使用以下内容替换现有的:
<?php
$front_path = is_mobile() ? '/path/to/mobile/front.php' : '/path/to/default/front.php';
chdir(dirname($front_path));
require_once $front_path;
function is_mobile() {
// Your logic here. Probably sniffing headers.
}
这是一个名称间隔的文件夹结构:
$static_base_url = '/static/mobile';
然后CSS网址看起来像这样:
$static_base_url . '/css/main.css'
如果您的应用程序已经适用于CDN,那么您可能不需要这些更改。
您的资产可能已被搜索引擎编入索引,并且可能无法进行重组。如果是这样,也许看看条件反向代理。
(现有的重写规则和重定向的筏也可能使问题复杂化。)