代码之家  ›  专栏  ›  技术社区  ›  Carl Binalla

重定向以某种方式添加了尾随斜杠

  •  1
  • Carl Binalla  · 技术社区  · 6 年前

    header('Location:employees');exit; 之后 POST ,我被重定向到 localhost/project_name/employees/ . 即使我的 <a> 指向正义 employees

    <a href="employees" role="button" class="col-1 my-1 mr-1 btn btn-outline-primary btn-sm">Employee</a>
    

    我总是被重定向到 employees/ . 这不会发生在其他链接上,如果我使用 employee ,我被正确重定向,没有添加斜杠。我怀疑是因为我 .htaccess ,但不影响其他链接。

    这是我的 :

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    

    即使我删除了内容,它仍然会在 员工 (Microsoft边缘) ,仍然是相同的结果。

    我试着更新 htaccess 带着答案 here

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC,L]
    

    我也试着把 employees.php 只是想看看是不是因为我的代码,但问题仍然存在。

    2 回复  |  直到 6 年前
        1
  •  1
  •   anubhava    6 年前

    将我的评论转换为答案。

    所示的所有规则都不会添加尾随斜杠。这可能是由于某些代码或Apache服务器指令造成的。

    缓存已禁用

    另外要注意的是,如果URI指向一个真正的目录,那么Apache的 mod_dir 模块添加一个尾随目录并发送 301 为了安全起见。

        2
  •  0
  •   Ray A    6 年前

    你能试试这个.htaccess吗:(先备份.htaccess,然后用这些行覆盖它)

    RewriteEngine On    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /project_name/$1 [L,R]
    

    我刚在我的服务器上测试过,它能工作!