如何通过PHP中的HTACCESS文件获取动态URL?

时间:2011-03-01 18:19:40

标签: .htaccess dynamic-url

我需要在网址中使用动态子域名。 我的PHP应用程序将为用户打开帐户。

我的登录网址将是

http://example.dev/app/login

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

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

我当前的域名是example.dev

我的要求是在域名中加入帐户名称。我的网址应如下所示

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

同样,如果我的帐户名称是sundar,则我的网址应该是这样的

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

我知道这可以使用.HTACCESS。我试过了,但我无法正确使用

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

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

以上是否正确?

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

RewriteRule ^(。*)$ example_controller.php

1 个答案:

答案 0 :(得分:1)

我知道你根本不想在example_controller.php中使用cahnge。

PHP访问原始URL: $ _ SERVER [“REDIRECT_URL”] 它将包含原始请求地址,而不是“最后但只有一个”请求地址。

我能想到的唯一解决方案是反向代理。您可以使用 .htaccess 创建代理请求(使用[P]指令)到您自己的主机到所需的URL。这样,PHP会将该网址视为 REDIRECT_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指令是如何工作的,试一试。