最小化.htaccess设置中的重定向链

时间:2016-04-12 12:46:58

标签: wordpress .htaccess redirect https http-status-code-301

我在.htaccess重定向方面达到了基本的理解水平,但我正在设法通过一个我重新开发的网站。我已经非常广泛地搜索了Stack Overflow,但是不能理解如何在我自己的情况下整理所有建议。

我将我的WordPress网站切换到https,到目前为止已经设法拼凑了以下设置:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{ENV:HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [NC,R=301,L]


# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我有一些错误但我想解决,目前http://重定向到https://,然后重定向到https://www

如何设置附加规则以将http://的所有内容直接移至https://www。 ?

还有一些网页我想重定向到https网站中的新网址。 http://www.example.com/bunnyhttps://www.example.com/rabbit。如何将这些从不安全的重定向到新的安全URL的最佳方式(至少301个链)?

2 个答案:

答案 0 :(得分:0)

我建议您将重定向规则替换为此(调整您的域):

import java.util.Random;
import java.util.Scanner;

public class Main {
    private static final Random RND_GEN = new Random();

    public int[] createNum(int[] randomNumbers) {
        for (int i = 0; i < randomNumbers.length; i++) {
            randomNumbers[i] = RND_GEN.nextInt(10) + 1;
        }

        return randomNumbers;
    }

    public void printNum(int[] randomNumbers){
        for (int i = 0; i < randomNumbers.length; i++) {
            System.out.println("Number " + i + " : " + randomNumbers[i]);
        }
    }

    public int findNumInstancesInArray(int[] array, int numLookingFor) {
        int count = 0;

        for(int i : array) {
            if (i == numLookingFor) {
                count++;
            }
        }

        return count;
    }

    public void run() {
        Scanner inputReader = new Scanner(System.in);
        int x;
        do {
            int[] numbers = new int[20];
            numbers = createNum(numbers);
            printNum(numbers);
            int numLookingFor = RND_GEN.nextInt(10) + 1;
            System.out.println("Number of instances of " + numLookingFor + " is: " + findNumInstancesInArray(numbers, numLookingFor));
            System.out.print("Restart Program?, Enter 1 for YES, 2 for NO: ");
            x = inputReader.nextInt();
        } while (x == 1);
    }

    public static void main(String[] args) {
        Main go = new Main();
        go.run();
    }
}

答案 1 :(得分:0)

您不需要使用RewriteCond %{ENV:HTTPS} !=on 你需要这样的东西:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

和wp-admin:

wordpress site Address Url : https://Your_site_url
Site Address Url:https://Your_Site_Url