【问题标题】:Map a second domain name to a specific method将第二个域名映射到特定方法
【发布时间】:2011-09-07 01:34:33
【问题描述】:

我有两个域名指向同一个服务器,example.com 和 myapp.com。我希望对http://example.com/params(具有零个或多个参数)的所有请求都等同于请求http://myapp.com/controller/method/params。我不在乎 URL 是否包含“www”。

这是我到目前为止的进展。 http://example.com/param 的请求不会被重写为 http://example.com/controller/method/param 的请求。澄清一下,对http://example.com/login 的请求会将我带到可从http://myapp.com/login 访问的登录页面,而不是从http://myapp.com/controller/method/login 可访问的页面。我的第一次重写条件似乎有问题,但我不知道是什么。

RewriteEngine on

RewriteCond %{HTTP_HOST} example.com [NC]
RewriteRule ^(.*)$ controller/method/$1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?/$1 [L]

我正在使用 CodeIgniter,这就是我通过 index.php 路由所有请求的原因。

我一直在玩上面的代码,但没有任何运气。我在正确的轨道上吗?提前致谢。

【问题讨论】:

  • 你的资产有绝对链接还是相对链接?
  • 都是相对链接。如果有任何区别,我尝试将 URL 映射到的功能将执行重定向,因此没有加载资产不是问题。
  • 您必须将资产 URL 设置为绝对链接。
  • 对不起,让我重新表述我原来的问题。我遇到的问题不是资产没有加载,而是 example.com 没有路由到正确的页面。
  • 规则 RewriteRule ^(.*)$ controller/method/$1 [L] 应该是最后一个

标签: php apache .htaccess codeigniter mod-rewrite


【解决方案1】:

您是否缺少控制器之前的正斜杠?

RewriteRule ^(.*)$ /controller/method/$1

【讨论】:

猜你喜欢
  • 2020-05-13
  • 2012-10-29
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多