Apache mod_rewrite - 从子域重写到主域

时间:2009-12-01 15:32:38

标签: apache redirect subdomain rewrite

我想将网址abc.xyz.com/123重定向到xyz.com。因此,将被访问的文件将是xyz.com的index.php。 index.php应该可以使用abc和123(因此123将是$ _SERVER ['PHP_SELF'],而abc将来自$ _SERVER ['HTTP_HOST'])以启用适当的处理。

abc.xyz.com已经访问xyz.com(虽然我的服务提供商进行了配置),并且可以从$ _SERVER ['HTTP_HOST']中提取abc。但是,abc.xyz.com/123似乎在xyz.com的根目录中查找名为123的文件夹,并且在找不到任何文件时出现404错误。

有人可以给我输入.htaccess的行以启用abc.xyz.com/123来调用xyz.com的index.php(尽管$ _SERVER ['PHP_SELF']可以使用123 ?我似乎无法让它发挥作用。

非常感谢你的时间!

2 个答案:

答案 0 :(得分:0)

也许是这样的:

RewriteEngine On
RewriteCond %{HTTP_HOST} .xyz.com  [NC]
RewriteRule ^(.*)$ index.php?param=$1 [L,QSA]

所以,基本上,如果HTTP主机包含.xyz.com,(前面点的存在确保它只发生在子域中),那么所有内容都会被发送到index.php,其中包含域附后的内容$ _GET [ 'PARAM']。

答案 1 :(得分:0)

谢谢Kazar的建议。我在上面找到了我的子域子目录重定向问题的解决方案,这里是:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_URL} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]