Перенаправление с другого HTML-сайта на другой сайт WordPress с помощью htaccess

#apache #.htaccess #redirect #mod-rewrite #url-rewriting

#apache #.htaccess #перенаправление #мод-перезапись #переписывание URL-адреса

Вопрос:

У меня есть веб-сайт в формате HTML, и у меня есть эта ссылка http://html-website.com/CA_NutritionIncentiveProgram.htm который я хотел бы перенаправить на https://wordpress-website.com/ca_nutritionincentiveprogram

У меня есть это в моем файле htaccess, но он не работает

 <IfModule mod_rewrite.c>
# Redirect non WordPress pages to corresponding post
RewriteEngine On
RewriteBase /
RewriteRule ^/CA_NutritionIncentiveProgram/.htm$ https://wordpress-website.com/ca_nutritionincentiveprogram [R=301,L]
</IfModule>
 

Когда я загружаю этот HTML-сайт http://html-website.com/CA_NutritionIncentiveProgram.htm он перенаправляет меня на сайт WordPress, но с включенным .htm (https://wordpress-website.com/ca_nutritionincentiveprogram.htm )

Вот что я недавно получил (источник: RavinderSingh13)

 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^html-website.com$ [OR]
    RewriteCond %{HTTP_HOST} ^www.html-website.com$
    RewriteRule (.*)$ http://www.wordpress-website.com.com/$1 [R=301,L]

    RewriteCond %{REQUEST_URI} ^/(ca_nutritionincentiveprogram)/?$ [NC]
    RewriteCond %{REQUEST_FILENAME}.html -f
    RewriteRule ^(.*) http://%{HTTP_HOST}%{REQUEST_URI}.html [NE,L]
</IfModule>
 

Любая помощь

Ответ №1:

Ваше исходное правило в порядке и должно работать, если используется в server.config контексте. Если вы хотите, чтобы он работал htaccess , вам нужно удалить начальную косую черту, потому RewriteRule что директива использует относительный путь (начинающийся без /) htaccess .

 <IfModule mod_rewrite.c>
# Redirect non WordPress pages to corresponding post
RewriteEngine On
RewriteBase /
RewriteRule ^CA_NutritionIncentiveProgram.htm$ https://theappliancejudge.co.uk/ca_nutritionincentiveprogram [R=301,L,NC]
</IfModule>
 

Комментарии:

1. @Amit Verma большое вам спасибо, это работает хорошо

2. @Amit Verma Теперь у меня проблема с PDF-файлами, как я могу перенаправить его, например, на новый сайт WordPress html-website.com/F2F_Strategic_Plan.pdf чтобы wordpress-website.com/wp-content/uploads/2020/12 /…

Ответ №2:

Не могли бы вы, пожалуйста, попробовать следующее, основываясь только на показанных вами образцах. Пожалуйста, убедитесь, что вы очистили кэш вашего браузера, прежде чем тестировать свои URL-адреса. Кроме того, вам не нужно указывать R=301 , что else перепишет этот URL-адрес в браузере на новый (который мы, очевидно, не хотим показывать пользователям).

 RewriteEngine ON
RewriteCond %{REQUEST_URI} ^/(.*ca_nutritionincentiveprogram)/?$ [NC]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*) http://%{HTTP_HOST}/%1.html [NE,L]
 

Комментарии:

1. Привет, спасибо за помощь, но он все еще не работает, пожалуйста, посмотрите Мой отредактированный вопрос, я поместил туда то, что у меня есть, и добавил ваш код

2. @FrancisAlvinTan, не могли бы вы, пожалуйста, отправить мне пример URL-адреса, на который вы нажимаете? кстати, эти правила проверяют, ca_nutritionincentiveprogram.html присутствует ли он в вашем path или нет, если он присутствует, то только он перенаправит запрос в серверной части на него.

3. есть ли здесь система сообщений в Stackoverflow?

4. @FrancisAlvinTan, вам не нужно указывать мне точный URL-адрес, просто попробуйте http://localhost:80/bla_bla_bla_test , как это будет нормально.

5. @FrancisAlvinTan, не могли бы вы один раз проверить мое отредактированное решение, я внес в него небольшие изменения, пожалуйста, дайте мне знать, как это происходит, спасибо.