实现apache二级域名用伪静态规则绑定二级子目录
程序已经会自动跳转m二级目录的
例如手机访问m.xx.cn已经会自动跳转到对应路径时,用下面的规则好点
RewriteEngine On
# 确保只对 m.xxx.cn 生效
RewriteCond %{HTTP_HOST} ^m\.xxx\.cn$ [NC]
# 避免重定向循环
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^$ /m/ [L]
# 只针对 www.m.xxx.cn.cn 和 m.xxx.cn.cn 域名
RewriteCond %{HTTP_HOST} ^(www\.)?m.xxx.cn\.cn$ [NC]
# 检测是否是手机设备
RewriteCond %{HTTP_USER_AGENT} "iphone|android|mobile" [NC]
# 301 跳转到 m.xxx.cn 域名
RewriteRule ^(.*)$ http://m.xxx.cn/m/$1 [R=301,L]
程序没有跳二级目录的,可以用下面的规则
RewriteEngine On
# 确保只对 m.xxx.cn 生效
RewriteCond %{HTTP_HOST} ^m\.xxx\.cn$ [NC]
# 避免重定向循环
RewriteCond %{REQUEST_URI} !^/m/
# 将所有请求重定向到 /m 目录
RewriteRule ^(.*)$ /m/$1 [L]
规则解释
RewriteEngine On:启用 URL 重写引擎。
RewriteCond %{HTTP_HOST} ^m.xxx.cn$ [NC]:确保规则仅适用于 m.dnafuwu.cn。
RewriteRule ^(.*)$ /m/$1 [L]:将请求映射到 /m/ 目录下,同时保持原路径。
这样配置后,访问 m.xxx.cn/1 时,它会实际从 /m/1 目录下加载内容,而 URL 显示为 m.dnafuwu.cn/1。
网上其他规则:
通过伪静态规则实现子目录绑定:apache+.htaccess或IIS+ISAPI_REWRITE+httpd.ini
Apache HTTP Server一般安装在类Linux服务器上,默认支持URL重写,一般虚拟主机用户将.htaccess文件放网站根目录就可以实现伪静态了,使用下面的伪静态规则就可以实现子目录绑定。
RewriteEngine on
# 把 ip.caoger.net改为你要绑定的域名,把 IPdir 改为要绑定的目录
RewriteCond %{HTTP_HOST} ^(www.)?ip.caoger.net$
RewriteCond %{REQUEST_URI} !^/IPdir/
# 不要改以下两行.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 把 IPdir 改为要绑定的目录.
RewriteRule ^(.*)$ /IPdir/$1