Переписать URL с несколькими параметрами

У меня есть URL, который иногда имеет один или несколько параметров, и я хочу иметь возможность переписать соответственно.

URL-адреса следующие:

/index.php?pagetitle=Home

Мне удалось получить этот URL, чтобы отобразить, как я хочу, используя следующее:

/Home
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+) index.php?pagetitle=$1 [NC,L]

Я также хотел бы иметь возможность иметь тот же URL, но с идентификатором статьи

.com/index.php?pagetitle=Home&articleid=20

который я хотел бы отобразить так:

.com/Home/20

Но я не могу понять, как заставить его работать более чем с одним параметром.

ОБНОВИТЬ:
Хорошо, так что мне удалось заставить работать ниже:
index.php? PAGETITLE = $ 1&ArticleID = $ 2

Который отображается как:
.com / Главная / 20

Я попытался сделать еще один шаг и использовать название статьи, а также следующее правило:

RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articletitle=$2&articleid=$3 [NC,L,QSA]

Так будет отображаться как:
.com / Главная / ArticleTitle / 20

Но он не хочет работать на меня, кто-нибудь знает, что я делаю неправильно, и еще раз спасибо заранее.

http://karpium.co.uk/Home/Baits/20 — Этот URL работает

http://karpium.co.uk/Home — Но этот URL-адрес не работает, где, как и при использовании Pagetitle = и articleid =

0

Решение

Вы можете использовать следующее правило:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articleid=$2 [NC,L,QSA]
0

Другие решения

Итак, похоже, что я исправил это с помощью 3 различных правил переписывания, которые заключаются в следующем:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([0-9a-zA-Z]+)$ index.php?pagetitle=$1 [NC,L,QSA]
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))?/?$ index.php?pagetitle=$1&articletitle=$2 [NC,L,QSA]
RewriteRule ^([0-9a-zA-Z]+)(?:/([0-9a-zA-Z]+))(?:/([0-9]*))?/?$ index.php?pagetitle=$1&articletitle=$2&articleid=$3 [NC,L,QSA]

Если бы кто-нибудь мог пролить некоторый свет на несколько частей регулярного выражения для меня, это было бы очень ценно:

Что означает следующее?

?: /

?/?

Еще раз спасибо всем за помощь 🙂

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector