簡體   English   中英

htaccess RewriteRule為土耳其語字符

[英]htaccess RewriteRule to Turkish Characters

我使用htaccess文件重定向搜索查詢。

RewriteRule ^search/([a-zA-Z0-9\-\s]+)$ search.php?q=$1 [L,NC]

這對於英文字母和空格非常有效。

http://localhost:8080/search/stack%20over%20flow   OK
http://localhost:8080/search/stack-over-flow   OK
http://localhost:8080/search/stack+over+flow    FAIL
http://localhost:8080/search/%C5%9Ftack%C3%B6verfl%C3%B6w   (ştaköverflöw) FAIL

The requested URL /search/ştacköverflöw was not found on this server.

http://localhost:8080/search/%C3%B6z%20%C5%9Fan   (öz şan)  FAIL

The requested URL /search/öz şan was not found on this server.

我也需要與此字符一起使用:“ +şöçğüÖÇĞÜ”

有什么建議么?

您無法創建覆蓋Unicode字符的范圍,但可以將正則表達式更改為更寬松:

RewriteRule ^search/([^/_.]+)$ search.php?q=$1 [L,NC]

或者,如果您需要指定范圍,則可以執行以下操作:

RewriteCond %{THE_REQUEST} \ /+search/(%[89A-F][0-9A-Z]|[A-Z0-9+-]|%20)+ [NC]
RewriteRule ^search/([^/_.]+)$ search.php?q=$1 [L]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM