.htaccess htaccess重定向if条件汉字

.htaccess htaccess重定向if条件汉字,.htaccess,if-statement,redirect,.htaccess,If Statement,Redirect,如果url在同一.htaccess文件中包含中文字符和英文字符,如何重定向,如下所示: 汉字:www.abcdefg.com/wiki/貨船 重定向: 英文字符:www.abcdefg.com/wiki/Cargo\u ship 重定向: 现在,我正在使用下面的代码,如何使用if条件将这两个代码连接到同一个.htaccess文件中 英语重定向: RewriteEngine On RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC] RewriteR

如果url在同一.htaccess文件中包含中文字符和英文字符,如何重定向,如下所示:

汉字:www.abcdefg.com/wiki/貨船

重定向:

英文字符:www.abcdefg.com/wiki/Cargo\u ship

重定向:

现在,我正在使用下面的代码,如何使用if条件将这两个代码连接到同一个.htaccess文件中

英语重定向:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC]
RewriteRule ^(.*)$ http://www.abcdefg.com/en/wiki.php?word=$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC]
RewriteRule ^(.*)$ http://www.abcdefg.com/zh/wiki.php?word=$1 [L,R=301]
中文重定向:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC]
RewriteRule ^(.*)$ http://www.abcdefg.com/en/wiki.php?word=$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC]
RewriteRule ^(.*)$ http://www.abcdefg.com/zh/wiki.php?word=$1 [L,R=301]
是否可以使用If-Else重写规则? 如果$包含英文字符 但我不知道如何写if语句。有人能帮忙吗? 下面是我的尝试

重新编写引擎打开
重写cond%{HTTP_HOST}^abcdefg.com/wiki/$[NC]
重写规则^(.*)$http://www.abcdefg.com/en/wiki.php?word=$1[L,R=301]
重写规则^(.*)$http://www.abcdefg.com/zh/wiki.php?word=$1[L,R=301]
试试这些规则:

RewriteEngine On

# handle English URL
RewriteRule ^wiki/([a-z0-9_:'",&-]+)/?$ en/wiki.php?word=$1 [L,QSA,NC]

# handle Chinese URL
RewriteRule ^wiki/([^/]+)/?$ zh/wiki.php?word=$1 [L,QSA,NC]

你们怎么区分?我想他想自动检测URL中的汉字。我不认为这是可能的,但我很想知道是否有解决方案。
%{HTTP\u HOST}='english'
不起作用,因为你没有域名作为
“english”
更新:在我的htaccess
/wiki中有以上两条规则/貨船
/zh/wiki.php
提供,而
/wiki/Cargo\u ship
/en/wiki.php
提供,谢谢您的分享!现在就可以了。但是,如果英文URL包含4个特殊字符,例如:“,&它将重定向到中文URL,如何修改RewriteRule以确保keep重定向en/wiki.php?word=$1?抱歉,还有一个如何处理A-Z?重写规则只能支持a-Z,如:abcdefg.com/wiki/AFL-CIO它也会错误地重定向到中文zh/wiki.php?word=$1这也不正确。在我的测试中,这两个URL都被重写为
/en/wiki.php