Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 基于URL的重定向_Html_.htaccess_Redirect - Fatal编程技术网

Html 基于URL的重定向

Html 基于URL的重定向,html,.htaccess,redirect,Html,.htaccess,Redirect,我不确定基于URL重定向的最有效方法。我见过htaccess的例子,这些例子接近我所需要的,但我一点也不了解它背后的编程。我需要做的是: 检查页面是否为“watch.html” 如果URL显示为“watch?blahblah”而不是“watch.html?blahblah”,则重定向。 基本上,如果URL没有.html 重定向到添加了.html的同一页面 非常感谢您对编写此代码的任何帮助。不,我认为这完全没问题。mod_rewrite模块有一个相当模糊的语法,它可能非常令人沮丧 你想要的东西

我不确定基于URL重定向的最有效方法。我见过htaccess的例子,这些例子接近我所需要的,但我一点也不了解它背后的编程。我需要做的是:

  • 检查页面是否为“watch.html”
  • 如果URL显示为“watch?blahblah”而不是“watch.html?blahblah”,则重定向。
    • 基本上,如果URL没有.html
  • 重定向到添加了.html的同一页面

  • 非常感谢您对编写此代码的任何帮助。

    不,我认为这完全没问题。mod_rewrite模块有一个相当模糊的语法,它可能非常令人沮丧

    你想要的东西可以这样写:

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !\.html$
    RewriteRule (.*) $1.html
    
    首先,我们打开重写引擎。然后是指令:如果条件evaluation为true,则将应用它后面的单个重写规则。RewriteCond的语法很简单:
    RewriteCond
    ;如果模式与主题匹配,则条件将变为true。在我们的例子中,模式是一个名为REQUEST_URI的服务器变量,您可能对它很熟悉,它包含用户请求的URI。这里的模式是regex
    \.html$
    。\此处是转义点的转义字符,您可能知道它在正则表达式中有特殊含义(“匹配任何字符”);$符号表示行的结束;这个对整个表达式求反,因此如果其后的模式不匹配,则该条件将为真。因此,RewriteCond行说:“如果请求的URI没有以string.html结尾”

    然后是指令。它的语法是
    RewriteCond[可选标志]
    。“from”部分是要匹配的正则表达式模式。“to”部分是一个字符串,我们将重写原始查询。在我们的特定示例中,from是
    (.*)
    :the。意思是“任意角色”,星星的意思是“任意时间”,所以我们基本上是说“任意数量的任意角色”,意思是我们想要捕捉整个路径。我们把它放在偏执状态下,以便以后参考捕获的部分。然后我们将其重写为:
    $1.html
    ,其中$1表示我们在“from”部分捕获的第一个字符串

    就是这样:当我们在地址栏中写下“example.com/something”时,就会出现“example.com/something.html”页面


    当然,这是非常基本的,它可以改进很多,变得更加优雅和东西,但这应该让你开始。这里有很多有用的教程,文档也非常有用。

    不,我认为这很好。mod_rewrite模块有一个相当模糊的语法,它可能非常令人沮丧

    你想要的东西可以这样写:

    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !\.html$
    RewriteRule (.*) $1.html
    
    首先,我们打开重写引擎。然后是指令:如果条件evaluation为true,则将应用它后面的单个重写规则。RewriteCond的语法很简单:
    RewriteCond
    ;如果模式与主题匹配,则条件将变为true。在我们的例子中,模式是一个名为REQUEST_URI的服务器变量,您可能对它很熟悉,它包含用户请求的URI。这里的模式是regex
    \.html$
    。\此处是转义点的转义字符,您可能知道它在正则表达式中有特殊含义(“匹配任何字符”);$符号表示行的结束;这个对整个表达式求反,因此如果其后的模式不匹配,则该条件将为真。因此,RewriteCond行说:“如果请求的URI没有以string.html结尾”

    然后是指令。它的语法是
    RewriteCond[可选标志]
    。“from”部分是要匹配的正则表达式模式。“to”部分是一个字符串,我们将重写原始查询。在我们的特定示例中,from是
    (.*)
    :the。意思是“任意角色”,星星的意思是“任意时间”,所以我们基本上是说“任意数量的任意角色”,意思是我们想要捕捉整个路径。我们把它放在偏执状态下,以便以后参考捕获的部分。然后我们将其重写为:
    $1.html
    ,其中$1表示我们在“from”部分捕获的第一个字符串

    就是这样:当我们在地址栏中写下“example.com/something”时,就会出现“example.com/something.html”页面


    当然,这是非常基本的,它可以改进很多,变得更加优雅和东西,但这应该让你开始。有很多有用的教程,这些文档也非常有用。

    你不了解哪些部分?给出你正在使用的或你已经尝试过的。否则,我不知道这里有什么问题。我只是在论坛上浏览了不同的htaccess代码,这些代码检查URL并基于URL重定向,我意识到我无法理解htaccess的编码方式。因此,我默认询问这里是否有人知道如何做我需要的事情。这里有很多关于这方面的教程(),我肯定还有其他问题,因此涵盖了本主题的全部或大部分内容。尽管您有特定的需求,但请记住这不是一个代码请求站点,您需要回答一个具体的问题。看到了。我只是希望有人能帮我省下4个小时的研究和无尽的测试。欢迎编程!想想看,下次完成同样的事情只需要3小时44分钟。但是,有可能。。。(当然我是在开玩笑,下一次尝试最多三个小时。)你不明白哪一部分?给出你正在使用的或你已经尝试过的。否则,我不知道这里有什么问题。我只是在论坛上浏览了不同的htaccess代码,这些代码检查URL并基于URL重定向,我意识到我无法理解htaccess的编码方式。所以我默认询问这里是否有人知道如何做我需要的事情