Php 使用.htaccess更改URL中的语言参数代码

Php 使用.htaccess更改URL中的语言参数代码,php,apache,.htaccess,cakephp,mod-rewrite,Php,Apache,.htaccess,Cakephp,Mod Rewrite,我已将URL中的语言代码从3更改为2。因此,我希望通过.htaccess将任何旧URL重定向到新URL RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] 示例

我已将URL中的语言代码从3更改为2。因此,我希望通过.htaccess将任何旧URL重定向到新URL

     RewriteEngine on
     RewriteRule    ^$ app/webroot/    [L]
     RewriteRule    (.*) app/webroot/$1 [L]
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA]
示例:我想更改URL-

1) 到

2) 到

我使用的是CakePHP,这是默认的.htaccess

     RewriteEngine on
     RewriteRule    ^$ app/webroot/    [L]
     RewriteRule    (.*) app/webroot/$1 [L]
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA]
我试着用这个:

      RewriteRule     (.*)/deu/(.*) $1/de/$2 [L]
但它不起作用。
有人能帮忙吗?

根据URL示例,您应该使用以下指令:

RewriteCond %{REQUEST_URI} ^/eng
RewriteRule ^/(.*)/(.*)$ /en/$2 [R]

RewriteCond %{REQUEST_URI} ^/deu
RewriteRule ^/(.*)/(.*)$ /de/$2 [R]

第一个RewriteCond指令将检查URI是否从/eng开始。如果是,相应的RewriteRule将用“en”替换“eng”,并附加URI的其余部分,该部分在参数$2中可用。R标志将启动重定向,以便新URL在浏览器中可见。对于deu也是如此。

`重写规则^$app/webroot/[L]RewriteRule(.*)app/webroot/$1[L]RewriteCond%{REQUEST_FILENAME}上的RewriteEngine无法工作-d RewriteCond%{REQUEST_URI}^/eng RewriteRule^/(.*)/(.*)/en/$2[R]RewriteRule^(.*)$index.php/$1[L,QSA]`你能帮忙吗。使用这个:
RewriteRule上的RewriteEngine^$app/webroot/[L]RewriteCond%{REQUEST_URI}^/eng RewriteRule^/(.*)/(.*)/en/$2[R]RewriteRule%{REQUEST_URI^/deu规则^/.*)$/de/$2[R]