У меня есть дилемма с mod_rewrite.
Как написать правило, которое решит следующее:
Если я просматриваю / en / page / page, я хочу переписать это:
index.php? язык = еп и страница = / страница
НО, если я просматриваю только / страницу, я хочу переписать это:
index.php? Страница = / страница
Это возможно?
Редактировать:
/ page – это просто случайное динамическое имя, оно также может быть любым .
Мне нужно правило, которое проверяет, как / se == строка, и не более двух символов> / page -> index.php? Lang = se & page = / page, и если страница / страница просмотра будет замечена, что / page == длиной более 2 символов и переписать на index.php? page = / page
Edit2: нашел anser на мой вопрос:
RewriteEngine On RewriteBase / ## Проверьте, не является ли его имя или имя файла RewriteCond% {REQUEST_FILENAME}! -l RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d ## Переписать правила RewriteRule ^ (. {2}) / (. *) $ Index.php? Lang = $ 1 & page = $ 2 [L] RewriteRule ^ (. *) $ Index.php? Page = $ 1 [L, QSA]
Я заставил его работать самостоятельно! Вот правила, если кому-то еще нужно сделать то же самое:
RewriteEngine On RewriteBase / ## Проверьте, не является ли его имя или имя файла RewriteCond% {REQUEST_FILENAME}! -l RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d ## Переписать правила RewriteRule ^ (. {2}) / (. *) $ Index.php? Lang = $ 1 & page = $ 2 [L] RewriteRule ^ (. *) $ Index.php? Page = $ 1 [L, QSA]
RewriteRule ^page$ index.php?language=en&page=/page/page [L] RewriteRule ^page/ index.php?language=en&page=/page [L]
попробуй это:
RewriteRule ^(.*)/(.*)(/.*)$ index.php?language=$1&$2=$3 [L] RewriteRule ^page$ index.php?page=/page/page [L]