Wordpress .htaccess Правило перезаписи для URL после изменения корня

WordPress: 3.5.1

Как изменить мой файл.htaccess для перезаписи / перенаправления старых путей URL-адресов на новые пути после помещения WordPress в его собственный подкаталог (с помощью https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory - с использованием существующей установки подкаталога)?

Проблема У меня была установлена ​​старая версия Wordpress в папке с именем http://{www.mywebsite.com URL}/wp. Я изменил веб-сайт и выполнил инструкции по его "перемещению", поэтому теперь мой домен использует просто http: // {www.mywebsite.com URL} / для файлов. Wordpress запускает все сейчас (в отличие от моего старого сайта, где WP был просто болотной ссылкой). В целом, инструкции по перемещению работали нормально.

НО, я хочу, чтобы мои старые ссылки (из поисковых систем), такие как http://{www.mywebsite.com URL}/wp/archives/1534, перенаправили на http://{www.mywebsite.com URL}/archives/1534 Это не происходит с правилами перезаписи по умолчанию, используемыми WordPress. В коде псевдо:

Используйте общие правила перезаписи, за исключением случаев, когда вы переходите по ссылке, где я хочу "убрать" / wp из ссылки.

Я пробовал несколько вариантов переписывания со ссылкой на документы перезаписи мод Apache, но ни один из них не работал. Строки, которые я пробовал в приведенном ниже примере файла.htaccess, начинаются с #Attempt {number}- (и я понимаю, что они закомментированы - в реальном файле они не закомментированы).

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

#Attempt 1-- 
RewriteRule  ^wp/(.*)$  /$1  [L,QSA]

# Default WP ruls
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]

#Attempt 2 --
RewriteCond %{REQUEST_FILENAME} wp
RewriteRule (^/wp)(.*) $2 [L]

</IfModule>

# END WordPress

Есть ли простой способ добиться этого?

1 ответ

Попробуйте это - он сделает полное перенаправление 301 (которое вы хотите, так как это постоянное изменение URL):

RewriteRule ^wp/(.*)$ /$1 [R=301,L]

Я также рекомендовал бы поставить его перед # BEGIN WordPress комментарий, так как я думаю, что WordPress перепишет то, что внутри, если вы измените определенные настройки.

Другие вопросы по тегам