我想拥有一个多语种网站,但我还没有完成英文版本,所以我想重新定位,如果网址已经/ en /到一个带内容的特定页面"很快"。该页面为www.sitename.com/en/welcome
我在Wordpress中这样做,我不知道.htaccess那么好。这段代码实际上工作得很好,它会检查语言集并相应地重定向,但问题是在访问该网址后我想访问www.sitename.com,它仍然会将我重定向到该页面(可能是因为语言环境没有&#39 ; t改变)。
add_action("template_redirect", 'pl_redirect');
function pl_redirect() {
// if is english redirect to page id 193
if (get_locale() == 'en_US' && !is_page(193)){
wp_redirect( 'http://www.sitename.com/en/welcome' );
exit;
}
}
我怎样才能正确完成同样的事情? 我在.htaccess中尝试了这个但是它没有工作
Options +FollowSymLinks
RewriteEngine on
Redirect 301 ^/en/$ /en/welcome
这是通过Wordpress里面的.htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /web/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php [L]
RewriteRule ^/en/$ /en/welcome [R=301]
</IfModule>
答案 0 :(得分:1)
假设您已将所有内容安装在名为/web
的目录中 - 您将需要2个.htaccess
个文件:
/.htaccess (根WordPress .htaccess文件)
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
# the base directory
RewriteBase /web/
# this means "don't rewrite /web/index.php"
RewriteRule ^index\.php$ - [L]
# this is a router any URL that's neither a file
# nor a directory will be routed to /web/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /web/index.php [L]
</IfModule>
/web/.htaccess (您的重写)
RewriteEngine On
RewriteRule ^en/?$ /web/en/welcome [NC,L,R=302]