.htaccess 仅用于主页重定向到子域(OpenCart)
Posted
技术标签:
【中文标题】.htaccess 仅用于主页重定向到子域(OpenCart)【英文标题】:.htaccess redirect to subdomain only for homepage (OpenCart) 【发布时间】:2015-05-12 12:52:27 【问题描述】:我想从 mydomain.com 重定向到 shop.mydomain.com,但我也想让此重定向仅适用于主页。这是一个 Opencart 页面,所以所有页面都有类似于http://shop.mydomain.com/index.php?route=information/information&information_id=14 的 url,所以从我的角度来看,只为索引文件制定规则是不可行的。由于这个项目是一个代码意大利面条,并且有 OpenCart 页面和静态页面,我需要保持旧 URL(没有子域)处于工作状态。
查找了类似的主题,但它们都做完全相反的事情,从域重定向到子域或做同样的事情但使我的静态页面无用,所以我最终使用了一个非常糟糕的临时方法,如下所示。
<meta http-equiv="refresh" content="0;URL='http://shop.example.com/index.php?route=information/information&information_id=15'" />
非常感谢您,我希望在您阅读并找到真正重复的内容之前,我不会得到大量重复的投票。
【问题讨论】:
您的.htaccess
文件中有什么内容?
Options +FollowSymLinks RewriteEngine On RewriteCond %REQUEST_FILENAME !-d RewriteCond %REQUEST_FILENAME\.php -f RewriteRule ^(.*)$ $1.php
http://shop.example.com/index.php?route=information/information&information_id=14
是您的主页吗?您是要从该页面重定向还是确切地重定向到 http://example.com/
?
我想从example.com重定向到shop.example.com/index.php?route=information/…14。主页将是 opencart 主页。
【参考方案1】:
您可以在 /.htaccess
文件中使用它:
Options +FollowSymLinks
RewriteEngine On
# Redirect root to shop.example.com
RewriteRule ^/?$ http://shop.example.com/index.php?route=information/information&information_id=14 [R,L]
# Route to PHP files
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME\.php -f
RewriteRule ^(.*)$ $1.php
要使重定向永久化,请将[R,L]
更改为[R=301,L]
。
【讨论】:
它重定向到example.com/shop(安装了opencart)而不是shop.example.com/index.php?route=information/… :( 这不是规则所指示的,这意味着在某处触发了另一个重定向。或者可能是缓存问题。但是上面显示的规则将example.com 重定向到shop.example.com/index.php.../shop
目录中有.htaccess
文件吗?如果有,里面有什么?
不,该文件夹中没有 .htaccess。
我刚刚测试了重定向,它按预期工作。请尝试使用其他浏览器,或清除浏览器缓存并重试。以上是关于.htaccess 仅用于主页重定向到子域(OpenCart)的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess - 将旧网站重定向到主域,但也将一些内容重定向到主域的子域