【发布时间】:2013-11-28 14:46:36
【问题描述】:
我在 apache 服务器上建立了一个站点,桌面站点位于 /public_html 中,移动站点位于 /public_html/mob 中
我正在尝试设置一个 .htaccess 重写器,以便在用户访问 /mob 文件夹时将其发送到 /public_html 中的 index.php 文件。我当前的重写规则,在 mob 子文件夹中是:
RewriteRule ^(/)?$ ../index.php
我可以在 mob 子目录中加载相同的文件:
RewriteRule ^(/)?$ index.php
但是,我似乎无法让网站从父目录 (public_html) 加载 index.php 文件。
当我尝试在浏览器中加载 http://www.domain.com/mob 时收到:
Bad Request
Your browser sent a request that this server could not understand.
同样的重写器在我们的开发服务器上运行良好,但在我们的实际环境中却无法运行。
/public_html/mob 文件夹中的 .htaccess 文件如下:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(/)?$ ../index.php [L,QSA]
到达 index.php 时,移动设备检测脚本会决定是从桌面站点还是移动站点加载内容。
【问题讨论】:
-
这个 .htaccess 文件在哪里?在站点的文档根目录中,还是在 mob 子文件夹中?
-
移动网站是否有单独的子域,例如
m.domain.com?还是仅用作domain.com/mob?您还可以从/mob文件夹中提供现有的.htaccess 吗? -
哦,我明白了,但是为什么要将所有流量从移动站点无条件地重定向到主站点?
-
@anubhava public_html 目录中的 index.php 包含一个移动设备检测脚本,用于确定要加载的内容(移动/桌面)。移动网站使用与桌面网站相同的代码库。
-
下车并且您只想要内部重写? (我的意思是不改变浏览器中的 URL)?
标签: apache .htaccess mod-rewrite