Я проливал всю тему переполнения стека, которую я могу найти на htaccess и тщеславия в WordPress, но я полностью зациклен на том, почему мой не работает. Я полный noob с htaccess, поэтому я уверен, что это связано с этим.
Я пытаюсь отформатировать все URL-адреса, указывающие на / dealers / dealers-info / username, на одну и ту же страницу WordPress (id 112 – aka 'dealers-info') с именем пользователя в качестве параметра.
Код URL тщеславия добавлен сразу после URL #vanity
Например, передавая: URL.com/dealers/dealers-info/watergallery, где «watergallery» – это имя пользователя, отображается базовый 404:
не обнаружена
Запрошенный URL / дилеры / дилеры-info / watergallery не были найдены на этом сервере.
Любое понимание очень ценится – заблаговременно за вашу помощь!
[РЕДАКТИРОВАТЬ – удалено руководство / и перемещено правило – теперь видя страницу WP 404]
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteRule ^uvmax/blog/$ /blog [R=301,L] RewriteRule ^dealer-finder/$ /dealers [R=301,L] RewriteRule ^sterilight/blog/$ /blog [R=301,L] # vanity urls RewriteRule ^/dealers/dealers-info/(.*)$ index.php?p=112&username=$1 [L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
RewriteRule ^ дилеры / дилеры-info /(.*) index.php? P = 112 & username = $ 1 [L]
Спасибо всем за вашу помощь и предложения!
Оказывается, что встроенные функции RewriteRule WP – это то, что нужно использовать (по крайней мере, насколько я могу судить).
Это решение работало для меня, благодаря сотруднику ( Джеймсу ), который открыл эти примеры WP Codex !:
http://codex.wordpress.org/Rewrite_API/add_rewrite_tag http://codex.wordpress.org/Rewrite_API/add_rewrite_rule
add_action('init', 'dealerRewrite'); function dealerRewrite(){ add_rewrite_tag('%username%','([^&]+)'); add_rewrite_rule('^dealers/dealers-info/([^/]*)/?','index.php?page_id=112&username=$matches[1]','top'); }