代码之家  ›  专栏  ›  技术社区  ›  Drew Angell

如何调整此URL重写以正确处理“点”…?

  •  0
  • Drew Angell  · 技术社区  · 4 年前

    我使用以下URL重写规则:

    #URL Rewriting
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?username=$1 [L]
    

    这对大多数帐户来说都很好,但是如果用户名中有一个点(例如。 User.Name )然后我的重写失败,页面无法加载。

    0 回复  |  直到 4 年前
        1
  •  2
  •   RavinderSingh13 Nikita Bakshi    4 年前

    我相信你的正则表达式你可以加上 . 要在用户名中捕获它,请按如下方式添加它。我在手机上,我还没有测试过,我相信它应该能用。此外,这只是修复OP的尝试代码。又添加了一个条件来检查传递的查询字符串是否为null,以避免在此处循环。

    ##URL Rewriting
    RewriteEngine ON
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{QUERY_STRING} ^$
    RewriteRule ^([A-Za-z0-9-.]+)/?$ index.php?username=$1 [L]