2011-08-25 3 views
0

私のウェブページには複数の言語があります。ここでは、リンクの例は次のとおりです。Mod_rewrite URIセグメントを削除するには

http://myweb.com/en/page_load/about_us 
http://myweb.com/en/page_load/testing 

http://myweb.com/de/page_load/about_us 
http://myweb.com/de/page_load/testing 

私はこのようなことを短くしたい:

http://myweb.com/en/about_us 
http://myweb.com/en/testing 

http://myweb.com/de/about_us 
http://myweb.com/de/testing 

現在、私は私の.htaccessファイルでこれを持っている:

RewriteEngine On 
RewriteCond $1 !^(index\.php|images|public|css|blogg|img|captcha|robots\.txt|sitemap.xml|resources) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

任意の提案ですか?

+0

あなたは両方のルールをマージしたい、あるいはあなたの '.htaccess'であなたが持っているものは、あなたが提案した仕事をやるための最初の試みですか? –

答えて

1

これは、CodeIgniterの組み込みルーティングで行うことができます。 routes.php設定ファイルでこれを試してみてください。

$route['en/page_load/:any'] = "en/$1"; 
$route['de/page_load/:any'] = "de/$1"; 

これは、あなたが探しているものを与えるはずです。

0

あなただけpage_load一部を削除したい場合は、あなただけで行うことができます。

RewriteRule ^(.*)/page_load/(.*)$ $1/$2 [L] 

あなたは両方のルールをマージしたい場合は、私は、代わりに$1の(RewriteCond変数としてREQUEST_URIを使用する最初のことをお勧めします可能であれば、陰性の場合の代わりに陽性の場合の条件を指定することができます(条件には!を使用しないことをお勧めします)。私はこの方法がより保守的だろうと思う。

関連する問題