Назад | Перейти на главную страницу

Перезапись URL на настраиваемом сайте Wordpress

Мне было поручено изменить существующий сайт Wordpress с перезаписью URL. Проблема в том, что я никогда раньше этого не делал. Я знаю, что эти правила должны быть .htaccess файл в корне с чем-то вроде этого:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Однако я понятия не имею, как мне указать правила и условия перезаписи. Я пытался прочитать руководство по mod_rewrite, но мои нехватки технических способностей ограничивают мое понимание.

Вот URL-адреса, которые нужно переписать, и желаемые результаты:

Общий URL сообщения в блоге
www.example.com/?p=X
= www.example.com/blog/custom-post-title/

Конкретные страницы
www.example.com/?page_id=2
= www.example.com/about/

www.example.com/?page_id=4
= www.example.com/bloggers/

www.example.com/?page_id=10
= www.example.com/results/

Общий профиль блоггера
www.example.com/?author=X
= www.example.com/blogger/author-name/

Любая помощь в этом будет принята с благодарностью. Заранее спасибо!

Вы думаете наоборот: вы переписываете входной URL в соответствии с вашей файловой системой.

Итак, вы хотите переписать www.example.com/blog/custom-post-title/ к www.example.com/?p=X

Для всех ваших страниц переходите от конкретных к общим.

#Specifics
RewriteRule ^results/$ /?page_id=10 [L]
RewriteRule ^bloggers/$ /?page_id=4 [L]
RewriteRule ^about/$ /?page_id=2 [L]
#Blogger names
RewriteRule ^bloggers/(.+)$ /?author=$1 [L] #is there really no s to blogger here??
#Other articles
RewriteRule ^(.+)$ /?$1 [L]

Я немного сомневаюсь в последнем правиле, так как вы не используете имя файла для перенаправления (переписать на /), он может сделать новый запрос к index.php?<thequerystring> поэтому нам пришлось бы исключить index.php из последней перезаписи, чтобы избежать бесконечных циклов:

RewriteRule ^index.php$ - [L]

Может быть добавлен перед всеми остальными.

Wordpress должен иметь возможность сделать это за вас в разделе постоянных ссылок в настройках.

В противном случае, если он не может писать напрямую в ваш файл .htaccess, он должен дать вам что-то для копирования и вставки.

Единственная проблема, которую я вижу, - это использование слова «блоггер» вместо автора. Возможно, вам придется исправить это, если вы считаете это достаточно важным.

Больше информации