【问题标题】:frielndy url with GET form带有 GET 表单的友好网址
【发布时间】:2016-05-24 18:15:15
【问题描述】:

我试图在我的搜索结果中创建友好的 url 现在我的表格是这样的

<form action="/index.php" method=get id="wyszukaj">
    <input type="hidden" name=metoda value=search>
    <input type=text id="project" name=nazwa size=10 placeholder="Wpisz nazwę szukanej rośliny"  />
    <input type="hidden" id="project-id" />

    <a id="loop-icon" onclick="wyszukaj_submit();"></a>
</form>

当我输入“borowka”并点击搜索按钮时,页面显示链接:

index.php?metoda=szukaj&amp;nazwa=borowka

但我想生成这样的链接/search/borowka

我该怎么做? A 将此行添加到 htaccess

RewriteRule ^search/([^/\.]+)$ index.php?metoda=search&nazwa=$1

如果我直接在地址栏中输入 /search/borowka,它可以正常工作 我无法从 htaccess 重定向到 /search/borowka

有人可以帮我吗?

【问题讨论】:

    标签: html forms .htaccess mod-rewrite friendly-url


    【解决方案1】:

    您可能需要稍微调整一下,具体取决于您希望如何处理或将 szukaj 翻译为搜索...不确定您是否打算将 metada 设为固定值或动态,但请尝试以下操作:

    RewriteCond %{THE_REQUEST} /index\.php\?metoda=(?:[^&\s]+)&nazwa=([^\s&]+) [NC]
    RewriteRule ^(.+)$ /search/%1? [R,L]
    RewriteRule ^search/([^/\.]+)$ index.php?metoda=search&nazwa=$1 [L]
    

    【讨论】:

    • 非常感谢! :) 它有效我将此添加到 htaccess RewriteCond %{THE_REQUEST} /index\.php\?metoda=(?:[^&\s]+)&nazwa=([^\s&]+) [NC] RewriteRule ^( .+)$ /szukaj/%1? [R,L] RewriteRule ^szukaj/([^/\.]+)$ index.php?metoda=szukaj&nazwa=$1 [L]
    【解决方案2】:

    我并不真正了解 PHP,但您可以做的一件事是使用 JavaScript 来做您想做的事。例如,您可以将 JS 函数绑定到表单的 onsubmit 事件,并让该函数按照您想要的方式构建 URL 并将用户重定向到该 URL,不是吗?

    【讨论】:

      猜你喜欢
      • 2012-04-27
      • 2013-08-10
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-15
      • 2011-02-15
      • 2017-12-18
      相关资源
      最近更新 更多