Wordpress .htaccess проблема с перенаправлением - PullRequest
0 голосов
/ 25 мая 2018

Недавно я перешел со статического сайта на сайт, созданный на WordPress.Все работает отлично, кроме одной вещи.

Моя компания использует плееры для отображения контента, и игроки называют этот URL-адрес, чтобы получить контент:

https://mysite.fr/#thecontentpage.html

Этот URL-адрес со старого сайта.Поскольку новый веб-сайт теперь на WordPress, URL-адрес является более «классическим»:

https://mysite.fr/thecontentpage.html

Лучшее решение - заставить игроков вызывать новый URL-адрес, но это невозможно.Поэтому я подумал о перенаправлении с .htaccess, но оно не работает.

Вот мой .htaccess:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

Redirect 301 https://mysite.fr/#thecontentpage.html https://mysite.fr/thecontentpage.html

Даже с перенаправлением, когда я звоню https://mysite.fr/#thecontentpage.html Я попадаю на главную страницу, а не на нужную мне страницу.
Что я могу сделать, чтобы перенаправление работало?

Ответы [ 2 ]

0 голосов
/ 19 июня 2018

Поскольку я не мог сделать перенаправление в PHP или с помощью .htaccess, я просто использовал Javascript для перенаправления.

Я вставляю этот скрипт в файл header.php из моей дочерней темы:

<script type="text/javascript">
    var url = window.location.href;
    var racine = url.substring(0, url.lastIndexOf("/"));
    var page = url.substring(url.lastIndexOf("/")+1);

    if(page == "#old_url.html"){
        document.location.href = racine + "/new_url.html";
    }
</script>

Поскольку этот файл находится в дочерней теме, меня не беспокоят обновления наосновная тема.Тогда моя проблема решена!

0 голосов
/ 25 мая 2018

Вам не повезло, так как хештег никогда не отправляется на сервер, так как это фрагмент внутри страницы.Он используется только браузером.Следовательно, файл .htaccess никогда не увидит его, и вы не сможете написать переписать его.Итак, вам придется придумать уникальный способ перенаправления с использованием JavaScript перед загрузкой WordPress.Скорее всего, вам понадобится страница index.php, которая обрабатывает перенаправления, а затем отправляет все, что не попадает в ваше правило, прямо в WordPress.

ОБНОВЛЕНИЕ Как уже упоминалось, вы не можете этого сделатьс «WordPress», так как он не будет работать, чтобы сервер никогда не получал хэш-часть.Вы можете, однако, использовать JavaScript.Поместите этот код прямо внутри тега <head>:

<script>
    var $hash = window.location.hash.substring(1);
    if( $hash.length > 0 ) {
        window.location = $hash;
    }
</script>

Очевидно, что вы действительно захотите изменить этот простой код, чтобы выполнить более расширенную проверку и проверку таким образом, чтобы example.com/#whwh не пыталсяперенаправить ... но это начало для вас.Вы можете иметь массив перенаправлений «белого списка» и проверять $hash на этот массив ... просто мысль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...