Я всегда плохо относился к apache и использовал очень простые решения.Прямо сейчас я создал программное обеспечение для cms ... но .htaccess начинает сильно сокращаться.
Сначала я объясню, как работают и выглядят мои дружественные URL-адреса.Мой переключатель языка основан на URL и всегда содержит два символа.И это выглядит так: stackoverflow.com / ru / это делает переключение действительно простым и, поскольку оно основано на URL-адресе ..., оно хорошо работает в терминах SEO.Кроме того, если идентификатор языка не установлен, будет использоваться язык по умолчанию (stackoverflow.com/).
. В числах нет идентификаторов страниц.У меня есть уникальные идентификаторы страниц в тексте: stackoverflow.com / services.html и для целей SEO и каталогов папок - для предотвращения конфликтов .html в конце ..
Для подстраниц у меня есть "$Переменные стиля current_page "и" $ parent_page ": stackoverflow.com / services / translationating.html Службы, являющиеся родителями, и переводы, являющиеся текущей страницей.
Некоторый пример кода тоже (я его много использовалВы не думаете, что оно неполное):
RewriteRule ^(et|en|fi)\/(.+)\/(.+)\.html index.php?language=$1&pagelink=$3&parentlink=$2 [L,NC,QSA]
RewriteRule ^(.+)\/(.+)\.html index.php?language=0&pagelink=$2&parentlink=$1 [L,NC,QSA]
RewriteRule ^(.+)\.html index.php?language=0&pagelink=$1&parentlink=0 [L,NC,QSA]
Как сделать часть переключения языка более динамичной?
Этот метод ..^(et|en|fi)\/..
означает, что когда я устанавливаюдо cms, я должен вручную установить список языков.Лучше всего было бы установить его как-то в настройках cms.Потому что, таким образом, нет никаких конфликтов, связанных с папками.Возможна ли глобальная переменная apace через php, а затем отобразить ее в файле .htaccess?Как то так: ..^(LANGUAGELISTS)\/..
?Если это невозможно, то лучше всего будет сопоставить 2 символа в этом месте и передать его как $_GET['language']
.
Как динамически иметь неограниченное число родителей?
Это означает, что "$ parent_page" не установлен статически, и у меня есть неограниченное количество детей, подобно этому: stackoverflow.com / services / translation / english / somesubpage.html .Если это возможно, то также, как это будет использоваться в php с массивом?
Bounty edit
Первая часть вопроса в основном решена, если кто-то не придетс некоторыми php -> apache-array -> .htaccess.
Однако вторая часть вопроса все еще не решена.Поскольку это было проблемой для всех моих проектов и, возможно, могло бы помочь кому-то еще в будущем, я решил добавить награду к этому вопросу.