301 перенаправление на новую страницу домена за страницей [дубликат]

Я не сохраняю interface s - самое важное в языке: он чаще всего используется для наследования класса. Но в любом случае они важны! Например (это Java код, но он может просто адаптироваться к C# или многим другим языкам):

interface Convertable<T> {

    T convert();
}

public class NumerableText implements Convertable<Integer> {

    private String text = "";

    public NumerableText() { }

    public NumerableText(String text) {
        this.text = text;
    }

    public String getText() {
        return this.text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public Integer convert() {
        return this.text.hashCode();
    }
}

public class NumerableTextArray implements Convertable<Integer> {

    private String[] textArray = "";

    public NumerableTextArray() { }

    public NumerableTextArray(String[] textArray) {
        this.textArray = textArray;
    }

    public String[] getTextArray() {
        return this.textArray;
    }

    public void setTextArray(String[] text) {
        this.textArray = textArray;
    }

    public Integer convert() {
        Integer value = 0;
        for (String text : textArray)
            value += text.hashCode();
        return value;
    }
}

public class Foo {

    public static void main() {
        Convertable<Integer> num1 = new NumerableText("hello");
        Convertable<Integer> num2 = new NumerableTextArray(new String[] { "test n°1", "test n°2" });
        System.out.println(String.valueOf(num1.convert()));
        System.out.println(String.valueOf(num2.convert()));
        //Here are you two numbers generated from two classes of different type, but both with the method convert(), which allows you to get that number.
    }
}
2
задан user1844933 8 August 2015 в 05:16
поделиться

3 ответа

После обсуждения с поставщиком услуг в соответствии с их инструкцией я использовал следующий код, который отлично работает (согласно их информации для Virtual Private Server - особый случай)

Спасибо всем, кто принимает меры для решения моей проблемы проблема

RewriteEngine on
RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^olddomain\.tld$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.newdomain\.tld\/$1" [R=301,L] 
1
ответ дан user1844933 21 August 2018 в 02:16
поделиться
  • 1
    Если вы хотите увидеть улучшенную версию своих директив, вы можете проверить мое обновление .. – 5ervant 8 August 2015 в 15:05
  • 2
    Спасибо за ответ. Единственное значение имеет директива RewriteOptions inherit. Это необычно. Это означает, что они используют mod_rewrite в .htaccess дальше по пути файловой системы, чтобы казаться «правильным». корень документа (директивы mod_rewrite обычно не наследуются). (TBH, когда вы видите RewriteRule замены, отформатированные таким образом, что вы думаете, действительно ли они знают, что они делают.) – MrWhite 8 August 2015 в 15:05

Тогда вы можете использовать эту директиву RewriteRule:

RewriteRule ^public_html/(.*)$ http://www.newdomain.com/$1 [R=301,L]

Это будет только backreference регулярное выражение (.*), исключая "public_html /" .


Приятно видеть полные директивы, которые решили вашу проблему. Во всяком случае, вы можете улучшить и оптимизировать их, заменив эти 3 строки:

RewriteCond %{HTTP_HOST} ^olddomain\.tld$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.tld$
RewriteRule ^(.*)$ "http\:\/\/www\.newdomain\.tld\/$1" [R=301,L]

С этими двумя строками:

RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.tld$
RewriteRule ^(.*)$ http://www.newdomain.tld/$1 [R=301,L]

Это идеальный способ написать их, в моем вид ..

2
ответ дан 5ervant 21 August 2018 в 02:16
поделиться

Просто укажите свой новый домен на корневую папку сайта, а не корневую папку вашего сервера.

3
ответ дан Chirag Nandaniya 21 August 2018 в 02:16
поделиться