Я хочу, чтобы все запросы на страницы без вложенной папки были перенаправлены на тот же URL-адрес, но включая подпапку (вложенная папка не существует на самом деле, мне просто нужно добавить ее в мой url для SEO причин).htaccess перенаправляет текущий url себе, но включает в себя подпапку
current.mysite.com
current.mysite.com/pages/some-awesome-page
current.mysite.com/news/category/some-article
должны быть все перенаправлены
current.mysite.com/ru/
current.mysite.com/ru/pages/some-awesome-page
current.mysite.com/ru/news/category/some-article
Я попытался this решение:
RewriteEngine On
RewriteRule ^(.*) http://newdomain.com/$1 [R=301]
Но я в конечном итоге получить это:
http://current.mysite.com/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/ru/pages
Это мой Htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*) http://current.site.com/ru/$1 [R=301]
#RewriteBase/
#RewriteRule ^index\.php$ - [L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.php [L]
# END WordPress
</IfModule>
Как выполнить эту задачу?
EDIT:
Благодаря @Croises ответ я был в состоянии поставить все это вместе, то есть с помощью WordPress файл Htaccess вам нужны строки в точном таком же порядке, как здесь (т.е. пользовательские перенаправления перед WordPress редиректа) :
<IfModule mod_rewrite.c>
RewriteEngine On
# Begin custom redirect
RewriteCond %{THE_REQUEST} !\s/+ru/ [NC]
RewriteRule^/ru%{REQUEST_URI} [R=301,NE,L]
RewriteRule ^ru(/.*)$ $1 [NC,L]
# End custom redirect
# Begin Wordpress magic
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# End Wordpress magic
</IfModule>
Теперь он говорит, что 'не найден запрошенный URL/RU/был не найден на этом сервере. ' Думаю, я должен был добавить это - нет подпапки« ru », мне просто нужно добавить его к моему url (seo причинам). – mohnstrudel
Я исправил свой ответ на эту виртуальную папку – Croises
Прошу прощения, перенаправление работает, т.е. запрос 'http: // current.mysite.com/projects' перенаправляется на' http://current.mysite.com/ru/projects', однако я получаю сейчас: 'Не найдено Запрашиваемый URL/проектов на этом сервере не найден. – mohnstrudel