.htaccess 如何在PHP中通过HTACCESS文件获取动态URL?
我需要在url中使用动态子域。 我的PHP应用程序将为用户打开帐户 我登录屏幕的URL将为.htaccess 如何在PHP中通过HTACCESS文件获取动态URL?,.htaccess,dynamic-url,.htaccess,Dynamic Url,我需要在url中使用动态子域。 我的PHP应用程序将为用户打开帐户 我登录屏幕的URL将为 http://example.dev/app/login 登录后,用户将转到以下部分 http://example.dev/app/section/account_name=ram 我当前的域是example.dev 我的要求是在域名中加入帐户名。我的URL应该如下所示 http://ram.exmaple.dev/app/section 同样,如果我的帐户名是sundar,那么我的URL应该是这样
http://example.dev/app/login
登录后,用户将转到以下部分
http://example.dev/app/section/account_name=ram
我当前的域是example.dev
我的要求是在域名中加入帐户名。我的URL应该如下所示
http://ram.exmaple.dev/app/section
同样,如果我的帐户名是sundar,那么我的URL应该是这样的
http://sundar.example.dev/app/section
我知道使用.HTACCESS可以实现这一点。我试过了,但没能正确地得到它
RewriteCond%{HTTP_HOST}^([a-z-]+).example.dev$[NC]
重写规则(.*)$/app/section/?帐户\u名称=%1[QSA]
以上是正确的吗
要点:
在htaccess结束时,我必须调用一个控制器文件
RewriteRule^(.*)$example\u controller.php我知道您根本不希望example\u controller.php中有任何内容 PHP访问原始URL时使用:$\u SERVER[“REDIRECT\u URL”]它将包含原始请求地址,而不是“最后一个”请求地址 我能想到的唯一解决方案是反向代理。您可以使用.htaccess创建代理请求(使用[P]指令)将您自己的主机发送到所需的URL。这样,PHP会将该URL视为重定向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_代理。我不确定P和QSA指令是如何协同工作的,试试看。你能给我举一个这个代理请求的例子吗?是的,我添加了一个(虽然没有测试)。