.htaccess htaccess重定向if条件汉字
如果url在同一.htaccess文件中包含中文字符和英文字符,如何重定向,如下所示: 汉字:www.abcdefg.com/wiki/貨船 重定向: 英文字符:www.abcdefg.com/wiki/Cargo\u ship 重定向: 现在,我正在使用下面的代码,如何使用if条件将这两个代码连接到同一个.htaccess文件中 英语重定向:.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
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
。