htaccess将当前url重定向到自己,但包括一个子文件夹

时间:2016-04-13 14:25:25

标签: wordpress .htaccess redirect

我希望没有子文件夹的页面的所有请求都被重定向到同一个URL,但包括子文件夹(子文件夹实际上不存在,我只需要将其附加到我的URL,因为seo原因)。

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>

如何完成此任务?

编辑:

感谢@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>

1 个答案:

答案 0 :(得分:3)

使用以下命令更改您的代码(RewriteRule)

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

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