Mod Rewrite和阿拉伯字符

时间:2014-08-12 11:20:33

标签: php apache mod-rewrite utf-8 arabic

我目前在.htaccess文件中有以下规则,这些规则适用于英文网站。

RewriteEngine On
RewriteRule ^index.html$ index.php [L]
RewriteRule ^/?([0-9a-zA-Z_-]+)/?$ rewrite.php?param1=$1 [L]
RewriteRule ^/?([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/?$ rewrite.php?param1=$1&param2=$2 [L]
RewriteRule ^/?([0-9a-zA-Z_-]+)/([0-9a-zA-Z_-]+)/([^/]+)/?$ rewrite.php?param1=$1&param2=$2&param3=$3 [L]

但是,在阿拉伯语网站上,这会引发一个" 404"错误。

有效的例子:

http://www.mysitedomain.xyz/work/website/pages/goals-and-objectives
http://www.mysitedomain.xyz/work/website/solutions/banking

不起作用的示例:

http://www.mysitedomain.xyz/work/website/pages/الاهداف
http://www.mysitedomain.xyz/work/website/solutions/بنوك

知道如何解决这个问题吗?

由于

2 个答案:

答案 0 :(得分:3)

鉴于您的网址布局,我认为您不需要如此具体。你可能只想分割斜杠:

RewriteEngine On
RewriteRule ^index.html$ index.php [L]
RewriteRule ^/?([^/]+)/?$ rewrite.php?param1=$1 [L]
RewriteRule ^/?([^/]+)/([^/]+)/?$ rewrite.php?param1=$1&param2=$2 [L]
RewriteRule ^/?([^/]+)/([^/]+)/([^/]+)/?$ rewrite.php?param1=$1&param2=$2&param3=$3 [L]

答案 1 :(得分:0)

代替([0-9a-zA-Z _-] +)这利用(。*),任何内容

相关问题