代码之家  ›  专栏  ›  技术社区  ›  bluegray

REWRITERULE的REGEX中有多个句号

  •  1
  • bluegray  · 技术社区  · 14 年前

    我使用以下规则从 http://hostname.co.za/geoip/123.12.123.34 http://hostname.co.za/geoip/index.py?ip=123.12.123.34

    .htaccess输入/geoip

    RewriteEngine on
    RewriteRule ^(.*\..*\..*\..*)$ /geoip/index.py?ip=$1
    

    这只适用于仅匹配IP,但当我尝试此操作时,它会给出500个服务器错误:

    RewriteEngine on
    RewriteRule ^(.*\..*)$ /geoip/index.py?ip=$1
    

    我不仅要匹配IP,而且还要匹配主机名和至少一个完整站点。 我不知道为什么这不管用…

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gumbo    14 年前

    index.py RewriteCond

    RewriteCond $1 !=index.py
    RewriteRule ^(.*\..*)$ /geoip/index.py?ip=$1
    

    .* [^/.]+

    RewriteCond $1 !=index.py
    RewriteRule ^([^/.]+\.[^/.]+)$ /geoip/index.py?ip=$1
    RewriteRule ^([^/.]+\.[^/.]+\.[^/.]+\.[^/.]+)$ /geoip/index.py?ip=$1