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
它运行正常,但如果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
工作正常:)
我为mysite添加子域名为:m.mysite.com
我想改写:
m.mysite.com/game/play.php?g=IDgame => m.mysite.com/game/IDgame
我该如何编码?
答案 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配置正确,它应该在内部将你的移动游戏网址重写为同一个文件。