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 перепишет то, что внутри, если вы измените определенные настройки.