htaccess在子目录中获取子域名[Apache 2.2.27]

时间:2015-06-23 03:51:12

标签: php apache .htaccess mod-rewrite

我的服务器上有

的动态子域设置
  

.example.com的=> example.com/page.php pageDetailId = [

我的.htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}example.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]example.com$
    RewriteRule ^$ page.php?pageDetailId=%1 [NC,L]
</IfModule>

当我打开abc.example.com时,这工作正常我在page.php中获得了abc。

现在我有一个子目录example.com/student/*现在我也想要student/*中的子域值。特别是student/MyCourse.php。如何实现呢?

我的新.htaccess

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}example.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]example.com$
    RewriteRule ^$ page.php?pageDetailId=%1 [NC,L]

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}example.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]example.com$
    RewriteRule ^/student/MyCourse.php$ /student/MyCourse.php?pageDetailId=gateonline [NC,L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

通过在学生子目录中再添加一个.htaccess来解决这个问题:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^([w]{3,3}[.]{1,1}){0,1}arcanemind.com$
    RewriteCond %{HTTP_HOST} ^([0-9a-zA-Z-]*)[.]arcanemind.com$
    RewriteRule ^MyCourse.php$ MyCourse.php?pageDetailId=%1 [L]
</IfModule>

如果有人有办法使用正则表达式并在子目录中的所有文件中传递变量,我仍然会感激。