【问题标题】:Remove folder name from URL从 URL 中删除文件夹名称
【发布时间】:2014-04-22 01:00:05
【问题描述】:

我的服务器中有一个域 www.domain.com 重定向到 /。

接下来我有 index.php 代码:

header("Location: http://domain.com/v3/");

当我输入 mydomain.com 时,我的 url 中有 mydomain.com/v3/。

如何从 Url 中删除 v3

【问题讨论】:

  • 你不能从 URL 中删除任何东西,如果你这样做了,那么你的浏览器就会把你带到那里。我认为您应该从您的 URL 中删除 v3/ 并检查问题是否已解决,因为我试图理解它

标签: php regex apache .htaccess mod-rewrite


【解决方案1】:

从您的 PHP 代码中删除 header 行,因为它正在执行重定向,并且在您的根 .htaccess 中有这个基于前瞻的规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+v3/([^?\s]*) [NC]
RewriteRule ^ /%1 [R=302,L,NE]

RewriteRule ^((?!v3/).*)$ /v3/$1 [L,NC]

这基本上意味着如果请求不是以/v3/ 开头,则转发到/v3/,而不更改浏览器中的URL。

【讨论】:

    【解决方案2】:

    如果你是从 PHP 重定向,你可以使用parse_url 来清理它。

    $url = "http://domain.com/v3/";
    
    $host = parse_url( $url, PHP_URL_HOST); 
    $scheme = parse_url( $url, PHP_URL_SCHEME); 
    
    header( $scheme . '://' . $host );
    

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2023-04-10
      • 2019-07-18
      • 2016-04-13
      • 1970-01-01
      • 2020-04-27
      • 2013-09-29
      • 1970-01-01
      相关资源
      最近更新 更多