【问题标题】:htaccess | How would I allow a '.' in an API URL?htaccess |我怎么会允许一个'。在 API URL 中?
【发布时间】:2020-11-04 20:27:50
【问题描述】:

我正在为我的一个项目创建一个 API。我面临的问题是在我的 API url 中使用句点。当我的 URL 中有句点时,它会重定向到 Error 404 页面。但是,当我删除句号时,它工作得很好。我将在下面提供我的 .htaccess 代码。我该如何做才能在 URL 中使用句点?

https://example.com/api/update/1.0

htaccess 文件

RewriteRule ^update/([0-9a-zA-Z_-]*)$ update.php?version=$1 [NC,L]

【问题讨论】:

  • 这其实不是.htaccess或者重写的问题,而是关于“正则表达式”的基础知识。您想了解该领域。

标签: regex apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

请您尝试以下操作。试试这个正则表达式,它也会捕获像 1.0.2 这样的版本。

Options -MultiViews
RewriteEngine On
RewriteBase /api/
RewriteRule ^update/([0-9]+\.)([0-9]+\.{1,})?([0-9]+)?/? update.php?version=$1$2$3  [NC,L]

【讨论】:

  • 该代码似乎有问题,当我尝试此 URL 时 -> https://example.com/api/update/1.0 它完全疯了,并将我重定向到 var/www/vhosts/example.com/httpdocs/api/update.php?version=1.0 发生了什么?
  • @PhoenixCMS,看起来您的实际 uri 在链接中的 api 之后开始,我现在编辑了我的解决方案,您可以检查一次吗?
  • 如果我使用1.0.0,它可以工作,是他们接受1.01.0.0 格式的一种方式吗?
  • @PhoenixCMS,当然,请尝试我更新的正则表达式并告诉我?这应该同时处理1.01.0.2
  • 我已将它添加到我的 htaccess 中。
猜你喜欢
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2010-09-23
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多