簡體   English   中英

.htaccess使用獲取變量重定向太多次

[英].htaccess Redirecting Too Many Times Using Get Variables

我正在嘗試將用戶從我的主索引頁面重定向回索引頁面,但URL中帶有變量以交換加載的文件。 自從我添加變量以來,我得到的是太多的重定向。

這是我所做的:

 RewriteCond %{TIME} <20171201000000
 RewriteCond %{REMOTE_ADDR} !^00\.000\.000\.000
 RewriteCond %{REQUEST_FILENAME} !(styles|images|javascript).+$
 RewriteCond %{REQUEST_URI} !construction.php$ [NC]
 RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css|ttf|woff|js) [NC]
 RewriteRule .* /construction [R=302,L]

這部分工作正常並重定向。 但是,我已經在索引頁面上添加了case switch功能,以完全消除construction.php頁面。 因此,現在我已將其重定向到此文件,並且它重定向得太多了。

 RewriteCond %{TIME} <20171201000000
 RewriteCond %{REMOTE_ADDR} !^00\.000\.000\.000
 RewriteCond %{REQUEST_FILENAME} !(styles|images|javascript).+$
 RewriteCond %{REQUEST_URI} !index.php?redirect=construction$ [NC]
 RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css|ttf|woff|js) [NC]
 RewriteRule .* /index.php?redirect=construction [R=302,L]

我這樣做的原因是因為我要進行從constructionmaintenance 404多次重定向。

是什么導致當我所做的只是更改URL時,這會導致重定向過多?

僅供參考,這里是整個index.php文件:

<?php include $_SERVER['DOCUMENT_ROOT'] . "/settings/config.php"; ?>
<body>
<?php include $_SERVER['DOCUMENT_ROOT'] . "/php/header.php"; ?>
<?php
    if (! isset($_GET['redirect']))
    {
        include($_SERVER['DOCUMENT_ROOT'].'/php/index.main.php');

    } else {    
        $redirect = $_GET['redirect'];  
        switch($redirect)
        {
            case 'construction':
                include($_SERVER['DOCUMENT_ROOT'].'/php/index.construction.php');
                break;  
            case 'maintenance':
                include($_SERVER['DOCUMENT_ROOT'].'/php/index.maintenance.php');
                break;  
        }
    }
?>
<div class="container-fluid">
<?php include $_SERVER['DOCUMENT_ROOT'] . "/php/footer.php"; ?>
</div>
</body>
</html>

您不能這樣做:

RewriteCond %{REQUEST_URI} !index.php?redirect=construction$ [NC]

因為查詢字符串不是測試uri的一部分。 改用:

RewriteCond %{REQUEST_URI} !index\.php$ [NC,OR]
RewriteCond %{QUERY_STRING} !redirect=(?:construction|404)$ [NC] 

如果僅對此頁面使用redirect=construction ,則可以省略第一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM