htaccess,将虚拟子域重定向到URL参数

时间:2010-11-03 17:22:19

标签: .htaccess url-rewriting subdomain wildcard-subdomain url-parameters

我有一个.ne.ro域名(在罗马尼亚注册),访客可以使用或不使用“www”进入:

http://mydomain.ne.ro
http://www.mydomain.ne.ro

我想将http://123.mydomain.ne.ro重定向到http://mydomain.ne.ro?id=123。如果访问者输入“www | mail | ftp”,则必须将其视为非参数(显然)。

我尝试了htaccess subdomain redirct with last url parameter,但没有效果。

当前代码:

# edited on 05/April/2011 as suggested:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomain\.ne\.ro$
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.ne\.ro$
RewriteRule ^$ /index.php?id=%1 [R,L]

<小时/> 托管在hostgator's business plan(linux)上并在nic.ro注册,就在询问时。

3 个答案:

答案 0 :(得分:4)

经过许多建议的代码(感谢supersuphot)和大量的研究后,我找到了答案。

首先,我在 mydomain.ne.ro 下添加了子域 * ,指向域文件夹/路径:

Create subdomain *, hostgator shared account

然后我用下一个代码上传了.htaccess文件:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomain.ne.ro
RewriteCond %{HTTP_HOST} ^(.+).mydomain.ne.ro
RewriteRule ^([^/]*)$ http://mydomain.ne.ro/?id=%1 [P,L]

这也有效:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomain\.ne\.ro$
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.ne\.ro$
RewriteRule ^$ /index.php?id=%1 [P,L]

最重要的是 P ,而不是最后一行的 R ,以保留原始子域名。检查this answerrelated question

答案 1 :(得分:1)

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mydomain\.ne\.ro$
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.ne\.ro$
RewriteRule ^$ http://mydomain.ne.ro?id=%1 [R,L]

答案 2 :(得分:1)

哇量子!

我正在搜索那段代码两天,呃最后......

您的第一个代码非常适合我

RewriteRule ^([^/]*)$ http://mydomain.ne.ro/?id=%1 [P,L]

您也可以使用此更改(对于大写或小写字母)

RewriteRule ^(.*)$ http://mydomain.ne.ro/?id=%1 [P,L]

非常感谢quantme