Два домена в одном и том же веб-пространстве, но разный контент / язык по параметрам htaccess и GET - PullRequest
0 голосов
/ 03 февраля 2019

Мне нужно правило перезаписи или другое решение для доступа к таким страницам, как

www.domain.com/feature.php?lang=de

из

www.domain.de/feature.php

, которое находится в том же веб-пространстве, что и

www.domain.com.

С начала:

У меня есть домен

www.domain.com 

с многоязычным контентом, который запускается параметром GET языка.

Например:

www.domain.com/features.php?lang=fr 

будет загружать французский контент из базы данных, тогда как

www.domain.com/features.php 

отображает содержимое по умолчанию на английском языке.

Для чистых URL, оптимизированных для SEO, я создал следующее универсальное правило перезаписи htaccess:

RewriteRule ^/?(.*)/(.*).php /$2.php?lang=$1 [L,QSA]

Это сделает URL, такие как

www.domain.com/features.php?lang=fr

, доступными для SEO-версии:

www.domain.com/fr/features.php

Также другие языки, такие как

www.domain.com/features.php?lang=it

покрываются этим и могут быть доступны по чистому URL

www.domain.com/it/features.php

Мне нужно решение для особого случая для немецкого языка, потому что для немецкого языка у меня есть выделенный домен под названиемdomain.de.Таким образом, он не должен быть доступен по пути-URL, как

www.domain.com/de/features.php 

, как другие языки, но вместо

www.domain.de/features.php

мне, вероятно, нужно указать целевой домен domain.deк тому же веб-пространству, что и domain.com, поскольку они используют одни и те же файлы php, таблицы стилей и изображения.

Я не знаю, как отредактировать файл htaccess, чтобы он охватывал также домен .de.

Обратите внимание, что в дополнение к скрытому параметру lang есть несколько страниц, которые также должны передавать некоторые параметры GET.Их не нужно прятать.Их просто нужно сдать.Например,

www.domain.com/features.php?lang=de&a=1&b=2

должен быть доступен из

www.domain.de/features.php?a=1&b=2

Мой текущий htaccess RewriteRule уже покрывает дополнительные параметры для домена .com / x / в [L, QSA] наконец.Но я не знаю, как настроить его так, чтобы он охватывал доступ из домена .de, включая параметры GET, возникающие в ходе работы.

Это должно быть универсальное решение.Поэтому мне не нужно вводить строку для каждого из моих php-файлов, но вместо этого он должен охватывать все имена файлов php, как уже существующий RewriteRule сверху уже делает для домена .com.

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

Я думаю, это должно дать вам хотя бы отправную точку:

Options -Indexes
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.example.de$[OR]
RewriteCond %{HTTP_HOST} ^example.de$
RewriteRule ^/?(.*)$ http://www.example.com/de/$1 [R=301,L,QSA]

RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^/?(.*)/(.*).php /$2.php?lang=$1 [L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...