【问题标题】:How to change GET in url from html form?如何从html表单更改url中的GET?
【发布时间】:2021-08-18 06:08:33
【问题描述】:

默认 url 视图如下所示:https://example.com/user.php?page=history
我用 .htaccess 将其更改为:https://example.com/user/history/
我用无线电类型表单制作的导航栏出现问题。它给了我:https://example.com/user/history/?page=history
如何改变它?请帮忙。

.htaccess

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^user/(\w+)$ /user.php?p=$1
RewriteRule ^user/(\w+)/$ /user.php?p=$1
<form name='page' id='page'>
     <input id="history" type="radio" name="page" <?php if ($p == 'history') { ?>checked='checked' <?php } ?> onChange="autoSubmit();" value="history" >
     <label for="history">Історія замовлень</label>

     <input id="settings" type="radio" name="page" <?php if ($p == 'settings') { ?>checked='checked' <?php } ?>onChange="autoSubmit();" value="settings">
     <label for="settings">Налаштування</label>
</form>
<script>
  function autoSubmit(){
    var formObject=document.forms['page'];
    formObject.submit();}
</script>
<?php
$p="";
if(isset($_GET["page"])){
    $p=$_GET["page"];
}
?>

收音机类型的菜单需要是这样的:

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting query-string friendly-url


    【解决方案1】:

    编辑:请按照 cmets 中显示的示例尝试以下规则。

    RewriteEngine ON
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(?:[^/]*)/([^/]*)/?$ user.php?page=$1 [L]
    


    根据您显示的尝试,请尝试遵循 htaccess 规则文件,确保您的 php 文件和 htaccess 在同一个文件夹中。请确保在测试您的 URL 之前清除您的浏览器缓存。

    RewriteEngine ON
    ##Doing external rewrite to friendly url here.
    RewriteCond %{THE_REQUEST} \s/(.*)/?\?page=([\w-]+)\s [NC]
    RewriteRule ^ /%1/%2 [QSD,R=301,L,NE]
    ##Doing internal rewrite to php files here.
    RewriteRule ^(?:[^/]*)/([^/]*)/?$ user.php?page=$1 [QSA,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-16
      • 2012-08-23
      • 2016-03-02
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多