我有一个.htaccess文件,其中包含以下代码:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule /(.*)\.html article.php?title=$1
将我的网址从article.php?title=xxxx
转换为article/xxxx.html
url包含阿拉伯语和英语...
所以我输入这个网址
article/تسريب-أولى-صور-هاتف-LG-G4s-الجديد.html
工作正常 但是当我用url访问另一篇文章时
article/CloneApp-نقل-برامجك-المفضلة-بكامل-إعدادتها-من-ويندوز-إلى-اخر-نقرة-زر.html
不工作:Objet非麻烦!
问题是什么(他们之间有什么不同?)为什么第一个有效,第二个没有!
提前多多谢谢。
答案 0 :(得分:2)
最有可能的问题是您的重写规则。它显然是工匠 这样它只适用于仅包含ascii的请求 URL的slug部分中的字符,下划线或连字符。 这显然不会匹配URL中的阿拉伯字符。所以你有了 改变你的规则接受或多或少的任何期望 特殊字符:
RewriteRule ^([0-9]+)/([^/]+)/?$ article.php?id_art=$1 [NC,L]
从这个问题中提出类似的问题How to enable arabic slug in htaccess?
希望这有帮助。