0

我需要在 url 中使用动态子域。我的 PHP 应用程序将为用户开设帐户。

我的登录屏幕 URL 将是

http://example.dev/app/login

登录后,用户将转到以下部分

http://example.dev/app/section/account_name=ram

我当前的域是 example.dev

我的要求是在域名中带上帐户名。我的网址应如下所示

http://ram.exmaple.dev/app/section

同样,如果我的帐户名称是 sundar means ,我的 URL 应该是这样的

http://sundar.example.dev/app/section

我知道使用 .HTACCESS 可以做到这一点。我试过了,但我无法正确获得它

RewriteCond %{HTTP_HOST} ^([az-]+).example.dev$ [NC]

RewriteRule (.*)$ /app/section/?account_name=%1[QSA]

以上是正确的吗?

要点:在 htaccess 结束时,我必须调用一个控制器文件。

RewriteRule ^(.*)$ example_controller.php

4

1 回答 1

1

我了解您根本不想在 example_controller.php 中更改。

PHP 使用以下命令访问原始 URL:$_SERVER["REDIRECT_URL"]它将包含原始请求地址,而不是“最后一个”请求地址。

我能想到的唯一解决方案是反向代理。您可以使用.htaccess向您自己的主机创建到所需 URL 的代理请求(使用 [P] 指令)。这样,PHP 会将该 URL 视为REDIRECT_URL,因为这是请求的原始 URL。

RewriteCond %{HTTP_HOST} ^([a-z-]+).example.dev$ [NC]
RewriteRule (.*)$ http://example.dev/app/section/?account_name=%1[PQSA]

RewriteRule ^(.*)$ example_controller.php

当然,您必须启用 mod_proxy。我不确定 P 和 QSA 指令如何协同工作,试一试。

于 2011-03-01T18:41:32.033 回答