2016-04-13 4 views
0

Я хочу, чтобы все запросы на страницы без вложенной папки были перенаправлены на тот же 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> 

ответ

3

Изменить код (RewriteRule) с:

RewriteCond %{THE_REQUEST} !\s/+ru/ [NC] 
RewriteRule^/ru%{REQUEST_URI} [R=301,NE,L] 

RewriteRule ^ru(/.*)$ $1 [NC,L] 
+0

Теперь он говорит, что 'не найден запрошенный URL/RU/был не найден на этом сервере. ' Думаю, я должен был добавить это - нет подпапки« ru », мне просто нужно добавить его к моему url (seo причинам). – mohnstrudel

+0

Я исправил свой ответ на эту виртуальную папку – Croises

+0

Прошу прощения, перенаправление работает, т.е. запрос 'http: // current.mysite.com/projects' перенаправляется на' http://current.mysite.com/ru/projects', однако я получаю сейчас: 'Не найдено Запрашиваемый URL/проектов на этом сервере не найден. – mohnstrudel

Смежные вопросы