Это компиляция разделенных вещей, которые я собрал, заперев, но я не могу понять, как заставить их работать вместе..htaccess mod rewrite - переменное количество частей
Конфигурация
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
Удалить
www.
RewriteCond %{HTTP_HOST} www.sitename.com [NC] RewriteRule ^(.*)$ http://sitename.com/$1 [R=301,L]
расширение Удалить
RewriteCond %{REQUEST_FILENAME}.php -f RewriteCond %{REQUEST_URI} !/$ RewriteRule (.*) $1\.php [L]
Управление языком в первой позиции и странице во втором.
Пример 1:sitename.com/en/news
считывает изsitename.com/news.php?lang=en
Примера 2:sitename.com/pt/about
считывает изsitename.com/about.php?lang=pt
RewriteBase/ RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule .* - [L] RewriteRule ^([^/]+)/([^.]+) /$2.php?lang=$1 [L,NC,QSA]
Управления языка в первой позиции, страницы в секунде, и название статьи в третьих, только если второй параметром является «статьями '
Пример:sitename.com/en/article/article-url-name
чтение изsitename.com/news.php?urlname=article-url-name&lang=en
RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule .* - [L] RewriteRule ^([^/]+)/article/(\d+)*$ /news.php?urlname=$2&lang=$1 [L,NC,QSA]
Основная проблема - 3 и 4. Я могу сделать только одну работу, если другой не существует.
Конечная цель состоит в том, чтобы:
Английский:
- sitename.com/en
- sitename.com/en/about
- sitename.com/en/news
- sitename.com/ru/article/123
- sitename.com/ru/contacts
Португальский:
- sitename.com/pt
- sitename.com/pt/about
- sitename.com/pt/news
- sitename.com/pt/article/123
- sitename.com/pt/contacts
любой из ответов работал на вас? – bassxzero
не полностью, но мы получаем очень близко –