【问题标题】:Encoding URL issue编码网址问题
【发布时间】:2023-03-20 10:23:01
【问题描述】:

我使用 XAMPP v3.2.1 并且路由适用于所有 URL,除非 URL 中有 مم 是波斯字符).

例如此 URL 的路由是 404 Not Found:

localhost/FolderName/ClassName/MethodName/arg1/سلام%20بر
//                                 if I remove this ^ character, everything will be fine

该 URL 的输出:

Not Found

The requested URL /myweb/islamic_sources/quran/843/سلام بر was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.4.12 (Win32) OpenSSL/1.0.1l PHP/5.6.8 Server at localhost Port 80

我该如何解决?

【问题讨论】:

    标签: encoding http-status-code-404 url-routing persian


    【解决方案1】:

    如果你像这样通过 str_replace 管道值会发生什么

    $oldurl = '...._persian_character_ ....';
    $newurl = str_replace('_persian_character_', '', $oldurl);
    

    【讨论】:

    • 为什么要删除波斯字符?我需要他们......我把它作为一个参数并在查询中使用它
    • 也许我在阅读“如果我删除所有作品...”时分心了,你尝试过 unicode 吗?
    • 啊,我明白你为什么误会了……但其实我需要它,我说“如果我删除它,我可以正常工作”,因为我想说的是问题来自那个特定的角色。
    • %20 代表空格。我不明白你会如何需要一个空间,但很好。在这种情况下 str_replace('%20', ' ', $oldurl) 可能会有所帮助——抱歉,实际上是 20%——我猜是 LTR?
    • 是的%20 表示{空格},我需要它,因为这个词由两个部分组成,如made up。在madeup 之间有一个空格。我也需要那个空间..实际上我需要最后一个参数。顺便说一句,删除那个空间并不能让事情变得更好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    相关资源
    最近更新 更多