如果url在同一.htaccess文件中包含中文字符VS英文字符,如何重定向:
汉字: www.abcdefg.com/wiki/货船
重定向: http://www.abcdefg.com/zh/wiki.php?word=貨船
英文字符:www.abcdefg.com/wiki/Cargo_ship
重定向: http://www.abcdefg.com/en/wiki.php?word=Cargo_ship
现在,我使用下面的代码,如何使用if条件在同一个.htaccess文件中加入2个代码?
重定向到英语:
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语句。有人可以帮忙吗? 以下是我的尝试。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^abcdefg.com/wiki/$ [NC]
<If $ contains English characters>
RewriteRule ^(.*)$ http://www.abcdefg.com/en/wiki.php?word=$1 [L,R=301]
</If>
<Else>
RewriteRule ^(.*)$ http://www.abcdefg.com/zh/wiki.php?word=$1 [L,R=301]
</Else>
答案 0 :(得分:2)
请尝试以下规则:
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]