【问题标题】:strange trailing slash issue奇怪的斜杠问题
【发布时间】:2012-04-04 02:42:50
【问题描述】:

我在 Apache 服务器的 document_root 下有一个文件夹。 当我输入http://www.example.com/help 时,它不会重定向到http://www.example.com/help/,而是转到http://www.exmaple.com//help/。请注意,域名后有两个斜杠

我找不到为这种重定向设置的任何 mod-rewrite 规则。谁能想到其他可能的原因?

另外,在 Apache 中,从 http://www.example.com/help 重定向到 http://www.example.com/help/ 是由什么完成的? (注意'help'是真正的文件夹,并没有一个名为'help'的文件)。

谢谢!

【问题讨论】:

    标签: apache redirect


    【解决方案1】:

    最后我发现这是 Apache 的一个 bug。 https://issues.apache.org/bugzilla/show_bug.cgi?id=51982

    【讨论】:

      【解决方案2】:

      首先猜测是您的应用程序配置有一个项目作为其基本 URL,在您的情况下,它以 / 结尾,导致应用程序的内部路由系统添加额外的斜杠。

      回复提问者的评论:

      查看您的 .htaccess 文件。 如果它看起来像这样(顺便说一下,这是 WordPress 安装默认使用的):

      <IfModule mod_rewrite.c>
          RewriteEngine On
          RewriteBase /
          RewriteRule ^index\.php$ - [L]
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteCond %{REQUEST_FILENAME} !-d
          RewriteRule . /index.php [L]
      </IfModule>
      

      然后它将尝试从实际目录/help 加载。 但如果它不包含!-f!-d 行,它将通过应用程序入口点加载每个请求,无论请求的项目是否存在于文件系统中。

      【讨论】:

      • 谢谢。但这无济于事。请注意,“帮助”是一个真正的文件夹,所以我们不应该期望任何重定向。
      • 评论不能换行?烦人...更新了初始答案。
      • 我认为“!-f”表示不是文件,“!-d”表示不是目录。 “帮助”是目录,所以没有应用重写规则。无论如何,我们没有使用 wordpress。
      猜你喜欢
      • 2011-08-30
      • 2019-04-09
      • 2010-12-05
      • 1970-01-01
      • 2022-08-11
      • 2015-03-24
      • 2017-01-27
      • 2013-11-02
      • 2011-06-28
      相关资源
      最近更新 更多