.htaccess и WordPress перенаправляет проблему - PullRequest
1 голос
/ 20 марта 2019

У меня есть такая структура на моем сайте:

/

/ portal <- (папка WordPress) </p>

когда кто-то заходит на www.example.com, он должен перенаправить на https://www.example.com/portal, но не должен показывать портал, поэтому адресная строка должна выглядеть следующим образом: https://www.example.com

Поскольку это сайт WordPress + Woocomerce, мне также нужны некоторые перенаправления:

http://www.example.com/carrito до https://www.example.com/carrito

Проблема в том, что в этот момент, когда я ввожу http://www.example.com/carrito, он меняет адресную строку на https://www.example.com/portal/carrito

В настоящее время у меня есть файлы .htaccess:

/. Htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)? 
example.com$
RewriteCond %{REQUEST_URI} !^/portal/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /portal/$1
RewriteCond %{HTTP_HOST} ^(www.)? 
example.com$
RewriteRule ^(/)?$ portal/index.php [L] 
</IfModule>

/ портал / .htaccess

RewriteEngine On

# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]

# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on

# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L]
# RewriteCond %{SERVER_PORT} ^80$
# RewriteRule ^(.*)$ https://%{SERVER_NAME}/%{REQUEST_URI} [R=301,L]

# BEGIN WordPress
<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

1 Ответ

1 голос
/ 20 марта 2019

Попробуйте обновить код в файле htaccess, о котором я упоминал ниже,

RewriteEngine On

# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]

# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on

# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L]
# RewriteCond %{SERVER_PORT} ^80$
# RewriteRule ^(.*)$ https://%{SERVER_NAME}/%{REQUEST_URI} [R=301,L]

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

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


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

# END WordPress

Для получения более подробной информации перейдите по ссылке - https://in.godaddy.com/help/redirect-http-to-https-for-wordpress-on-linux-27904

...