htaccess不适用于查询页面

时间:2017-09-07 14:04:46

标签: .htaccess

我需要获取页面

http://localhost/Magnigeeks/noqdoc/dashboard/?view=clinics

http://localhost/Magnigeeks/noqdoc/dashboard/clinics

我为此写了这个htaccess

RewriteEngine On
RewriteRule ^([^/]*)\.html$ /Magnigeeks/noqdoc/dashboard/?view=$1 [L]

它正在工作,但我不想在网址中使用.html。

意味着,它正在处理此网址

http://localhost/Magnigeeks/noqdoc/dashboard/clinics.html

但我需要这个网址

http://localhost/Magnigeeks/noqdoc/dashboard/clinics

谢谢

3 个答案:

答案 0 :(得分:0)

然后您需要从RewriteRule中删除/.html。所以它会变成这样:

RewriteRule ^([^/]*)$ /Magnigeeks/noqdoc/dashboard/?view=$1 [L]

确保在>测试之前清除缓存

答案 1 :(得分:0)

只需从规则模式中删除 .html ,这样就可以在不使用.html的情况下访问uri。

 private function attachQueries($url)
{
    foreach ($this->queries as $key => $value) {
        if(strpos($url,'?') !== false) {
            $url .= '&' .$key. '=' .$value;
        } else {
            $url .= '?' .$key. '=' .$value;
        }
    }

    return $url;
}

private function isUrlContainsRuntimeParameters($url)
{
    preg_match(self::RUNTIME_PARAMETER_PATTERN, $url, $matches);

    return !empty($matches);
}

private function mergeRuntimeParametersValues($parameter)
{
    preg_match(self::RUNTIME_PARAMETER_PATTERN, $parameter, $matches);

    return empty($matches)
        ? $parameter
        : preg_replace(self::RUNTIME_PARAMETER_PATTERN, $this->runtimeParameters[$matches[1]], $parameter);
}

答案 2 :(得分:0)

您的.htaccess似乎位于/Magnigeeks/noqdoc/dashboard/目录中,因此您无需在目标中使用此功能。

此外,您必须跳过重写中的文件和目录,以避免规则循环。

您可以使用:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ ?view=$0 [L,QSA]