2016-09-28 4 views
2

多言語のウェブサイトを持っていますが、まだ英語版は完成していませんので、URLがあれば/ en /をコンテンツのあるページにリダイレクトしたいと思います"すぐ"。このページはwww.sitename.com/en/welcomeになります/en /があるすべてのページを特定のページにリダイレクト

私はWordpressでこれをやっていますが、私はよく分かりません.htaccess that good。このコードは実際にはかなりうまく動作しますが、それは言語セットをチェックし、それに応じてリダイレクトしますが、問題はそのURLにアクセスした後にwww.sitename.comに行きたい、ということです。変化する)。

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ファイルでこれを試してみましたが、それはこれはあなたが実際に/webというディレクトリにあるすべてのものをインストールしていると仮定すると、内部の.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

'のRewriteRule ^/EN/$/EN /歓迎[R = 301、NC、L]' - 'とRedirect'取引"Redirect 301"/en ""/en/welcome "' – CD001

+0

ありがとうございます。しかし、私はそれを動作させることはできません:/私はワードプレスが何を入れてコードを編集しました –

+0

私は ' RewriteBase/web/'はスパナを作品に投げ込んでいます... – CD001

答えて

1

Wordpressのことである

Options +FollowSymLinks 
RewriteEngine on 
Redirect 301 ^/en/$ /en/welcome 

を動作しません - あなたが必要となります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] 
関連する問題