пользовательское правило перезаписи htaccess для страницы


У меня есть страница в wordpress под названием "видео". его идентификатор страницы равен 6, а его пуля - "видео"

В моей теме я настроил ее так, чтобы показывать контент на основе переменных GET

Вот перезапись URL, которую я пытаюсь настроить:

Вот исходный URL-адрес с переменными GET внутри:

Mysite.com/video/?video_id=102230&video_title=FC+Emmen+v+AGOVV+Apeldoorn&video_src=MTAyMjMw

Вот URL, на который я хочу его переписать, чтобы он мог быть проиндексированный:

Mysite.com/video/102230/MTAyMjMw/FC +Эммен+в+АГОВВ+Апелдорн

Вот мой файл htaccess, который не работает:

# BEGIN WordPress
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^video/(.*)/(.*)/(.*)$ ?page_id=6&7video_id=$1&video_src=$2&video_title=$3 [NC]
</ifmodule>
# END WordPress

Что происходит, когда я пытаюсь посетить mysite.com/video/102230/MTAyMjMw/FC +Эммен+в+АГОВВ+Апелдорн, он просто автоматически переходит в mysite.com/video и удаляет все после /видео

Редактировать - теперь он не удаляет все после /видео, но сообщает мне, что "Ничего не найдено для видео 102230 MTAyMjMw FC+Emmen+v+AGOVV+Апелдорн"

Author: scarhand, 2012-01-21

1 answers

Вы можете сделать это с помощью встроенной системы перезаписи WordPress.

function add_video_rewrite() {
    add_rewrite_tag("%video_id%", '([^/]*)');
    add_rewrite_tag("%video_src%", '([^/]*)');
    add_rewrite_tag("%video_title%", '([^/]*)');
    add_rewrite_rule('^video/([^/]*)/([^/]*)/[^/]*)', 'index.php?pagename=video&video_id=$matches[1]&video_src=$matches[2]&video_title=$matches[3]', 'top');
}
add_action( 'init', 'add_video_rewrite' );

Не проверял это, но я думаю, что это должно сработать. Что нужно сделать, так это сначала добавить теги, которые вы можете использовать в своем шаблоне (get_query_var(video_id)). Затем добавьте рерайтер, который специально соответствует URL-адресу.

Вы должны поместить этот код в свой functions.php а затем очистите свои перезаписывающие файлы (перейдите в раздел настройка > постоянные ссылки).

Дополнительная информация о переписчиках для WordPress:
http://codex.wordpress.org/Rewrite_API http://codex.wordpress.org/Rewrite_API/add_rewrite_tag http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

 2
Author: Rob Vermeer, 2012-01-21 14:28:23