我正在更新我的htaccess文件来控制一个正在创build的子域。 我遇到了一些问题。
首先,我build立了http://m.domain.com/这个域名,并指向http://www.domain.com/mobile.php/mobile
我希望这样的工作,因为我不想经过一个大的过程重构当前设置的URL路由,并修复它,这样会更容易。
我也想这个在我的开发机器上本地工作。 所以下面的url也适用: http : //local.m.domain.com和本地网站redirect到http://local.domain.com/mobile.php/mobile
这意味着,如果我传递参数后,说:: http://m.domain.com/page它会然后路由到页面http://www.domain.com/mobile.php/mobile/page
到目前为止,我有,但这只是下载一个PHP文件,而不是路由任何页面。
RewriteCond %{HTTP_HOST} (^local\.|^)m\.domain\.com\.au$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ mobile.php\/mobile$1 [QSA]
我知道,本地或“没有”select器的正则expression式是懒惰的,但我不认为这是什么杀死它。 当然,我可能是错的。
任何提示或build议将感激地接受。
它看起来像你的规则是让你到一个PHP文件。 我不确定你是什么意思的“下载一个PHP文件”,如果你的意思是下载代码为纯文本,那么你可能有一个问题,你的PHP处理程序,而不是路由。
否则,这可能意味着PHP代码正在使用原始URL进行路由,而不是您重写的URL。
你真正想要做的是你的最终规则是一个redirect。
所以你的规则应该是这样的。
RewriteCond %{HTTP_HOST} ^(local\.)?m\.domain\.com\.au$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ http://%1.domain.com/mobile.php\/mobile$1 [R=301,QSA] #I am assuming www.domain.com and domain.com and interchangeable