Два режима перезаписи для одной страницы.htaccess

Возможно ли иметь две правила перезаписи мод, направляющиеся на одну страницу? Например, я могу:

mysite.com/blog/15 И mysite.com/blog/post-title

оба указывающие на: mysite.com/blogpost.php?id=15

Благодаря :)

1 ответ

Если это относится к "15" и "послезаголовку", то да:

RewriteEngine On
RewriteRule ^/?blog/15$ /blogpost.php?id=15 [L]
RewriteRule ^/?blog/post-title$ /blogpost.php?id=15 [L]

Если это было "15: и" пост-название "может быть чем угодно, то нет.

Там нет способа, которым mod_rewrite может знать, какой идентификатор отображается после заголовка, если у него нет доступа к фактическому сопоставлению (например, в базе данных). Вы можете использовать RewriteMap для определения типа карты и указать ее на файл или скрипт, который может разговаривать с базой данных, но карта должна быть определена в конфигурации server/vhost. Невозможно использовать его в файле htaccess.

Вам лучше просто добавить эту функциональность к blogpost.php и передать ему титул. например:

RewriteEngine On
RewriteRule ^/?blog/([0-9]+)$ /blogpost.php?id=$1 [L]
RewriteRule ^/?blog/([A-Za-z0-9-]+)$ /blogpost.php?title=$1 [L]

licensed under cc by-sa 3.0 with attribution.