Как перенаправить URL с кодом языка на базовый URL - PullRequest
1 голос
/ 27 марта 2020

Если URL-адрес содержит код языка, например example.com/en, я бы хотел, чтобы что-то в моем файле .htaccess перенаправило его на мой базовый URL-адрес, example.com.

Это сайт WordPress. Теперь у меня есть это в моем .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
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>
# 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>

Итак, что мне в основном нужно, это example.com/en -> example.com.

1 Ответ

0 голосов
/ 27 марта 2020

В вашем файле .htaccess, кажется, есть ненужное дублирование кода. Следовательно, второй блок кода ничего не делает.

Вам также следует избегать редактирования директив в кодовом блоке WordPress ( front-controller ), так как это может быть переопределено WordPress (который может объяснить, почему вы продублировали код?!

Если вы просто хотите перенаправить URL example.com/en на example.com/ - как указано - затем отформатируйте файл .htaccess следующим образом:

# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Redirect /en to root
RewriteRule ^en$ / [R=302,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>
...