我希望没有子文件夹的页面的所有请求都被重定向到同一个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>
答案 0 :(得分:3)
使用以下命令更改您的代码(RewriteRule)
RewriteCond %{THE_REQUEST} !\s/+ru/ [NC]
RewriteRule ^ /ru%{REQUEST_URI} [R=301,NE,L]
RewriteRule ^ru(/.*)$ $1 [NC,L]