Мои ссылки / URL-адреса не работают после перехода на HTTPS

#php #.htaccess #mod-rewrite #https

#php #.htaccess #мод-переписать #https

Вопрос:

новичок здесь :). Итак, у меня есть веб-сайт WordPress, на который я добавил некоторые из моих собственных таблиц базы данных и скриптов php и sql. Пользователи могут входить на мой веб-сайт (независимо от WordPress), а затем добавлять контент в таблицы моей базы данных, который затем отображается на веб-сайте.

Я только что переключился на HTTPS с сертификатом от Let’s encrypt, и у меня большая проблема. URL-адреса на мои страницы (те, которые НЕ являются wordpress) больше не работают и показывают ошибку 404. Я потратил неделю, пытаясь решить проблему, но я просто не могу этого сделать с моими ограниченными навыками. Вот некоторая информация ниже.

Скрипт, который генерирует страницы, имеет следующий код:

$testurl = 'https://www.example.com/test-pages/'.sanitize_title($row['c2']).'-'.$row['id'];

В .htaccess у меня есть следующая строка:

 RewriteRule ^test-pages/[_a-z0-9-] -{1}([0-9] )$  /test-pages?id=$1 [P]
  

Эти два должны правильно переписать URL-адреса, верно (хотя я не уверен, где вызывается $testurl, строка кода просто находится там в моем скрипте)? Конкретные строки кода были написаны кем-то другим, поэтому я не уверен, что я что-то упускаю, но они годами работали с простым старым http!

Я думаю, что предпринял надлежащие шаги для настройки https, и все страницы WordPress работают.

Кроме того, интересно, что если я попытаюсь получить доступ к страницам с помощью http, он перенаправляет на https://www.example.com/test-pages?id= , который, я полагаю, является стандартным URL, созданным из базы данных, которую сценарии, представленные выше, использовали для перезаписи. И он отлично отображает страницу. Таким образом, я могу заставить вещи работать со ссылками на страницы таким образом, но я этого не хочу.

На данный момент я понятия не имею, что делать, обычно мне удается преодолеть такие проблемы, но не в этот раз. Я также искал решения в stackoverflow, но не нашел ничего, что имело бы смысл для меня. Есть идеи? Проблема здесь или где-то еще? Надеюсь, мне удалось правильно и несколько связно объяснить проблему. Спасибо!

РЕДАКТИРОВАТЬ: я добавил файл htaccess. Я точно не знаю, что еще я должен добавить.

 RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.maindomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.example.maindomain.com$
RewriteCond %{HTTPS} off 
RewriteRule ^/?$ "https://example.com" [R=301,L]

RewriteRule ^test-pages/[_a-z0-9-] -{1}([0-9] )$  /test-pages?id=$1 [P]
RewriteRule ^test-profiles/[_a-z0-9-] -{1}([0-9] )$  /test-profiles?id=$1 [P]

# BEGIN rlrssslReallySimpleSSL rsssl_version[3.3.5]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
</IfModule>
## EXPIRES CACHING ##
<Files 403.shtml>
order allow,deny
allow from all
</Files>
# Wordfence WAF
<Files ".user.ini">
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order deny,allow
    Deny from all
</IfModule>
</Files>
# END Wordfence WAF
<files wp-login.php>
order deny,allow
deny from all
allow from **.***.**.**
</files>
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php74” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit```
  

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

1. Пожалуйста, добавьте свой полный . содержимое файла htaccess и правильное объяснение того, на какие файлы сценариев вы пытаетесь настроить таргетинг и где они расположены.

2. @CBroe — Это безопасно? Под файлами / местоположением скрипта вы подразумеваете путь к ним?

3. Что значит «это безопасно»? Вряд ли вы можете ожидать, что кто-нибудь сможет помочь, если вы не предоставите информацию… Поскольку вы публикуете вещи, не должно быть причин, по которым публикация такой информации о маршрутизации не должна быть «безопасной», тем более, что никто не знает имя хоста, к которому принадлежат эти настройки…

4. Я новичок, потерпи немного, я не знаю, что я делаю 🙂 Я отредактирую файл и опубликую его

5. Я добавил файл htaccess. Я точно не знаю, что еще я должен добавить.