重写htaccess子域名

时间:2014-08-17 00:05:45

标签: .htaccess rewrite

Mysite正常运行,代码重写:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ https://www.mysite.com/$1 [L,R=301]

#rewrite www.mysite.com/page.php?page=ID => www.mysite.com/ID
RewriteRule ^([a-zA-Z0-9_-]+)/?$ page.php?page=$1
  1. 它运行正常,但如果ID有一个点(。),它不能正常工作?所以 我该如何解决这个问题?

    #rewrite www.mysite.com/game/play.php?g=IDgame => www.mysite.com/game/IDgame RewriteRule ^game/([a-zA-Z0-9_-]+)$ /game/play.php?g=$1

    工作正常:)

  2. 我为mysite添加子域名为:m.mysite.com 我想改写:
    m.mysite.com/game/play.php?g=IDgame => m.mysite.com/game/IDgame

    我该如何编码?

1 个答案:

答案 0 :(得分:0)

不是拥有id 可能包含的字符列表,而是拥有id肯定不能包含的字符列表通常更容易。在您的情况下,它很可能不包含斜杠。因此,您可以与([^/]+)匹配。你想明确地将play.php从匹配中排除,你可以用重写条件来做。

RewriteCond %{REQUEST_URI} !/game/play\.php
RewriteRule ^game/([^/]+)/?$ /game/play.php?g=$1 

至于你的m.mysite子域名。确保www.mysite和m.mysite的虚拟主机指向同一目录。如果你的dns配置正确,它应该在内部将你的移动游戏网址重写为同一个文件。