【问题标题】:How to hide query string from url using .htaccess?如何使用 .htaccess 从 url 隐藏查询字符串?
【发布时间】:2016-07-23 09:22:38
【问题描述】:

这里是编辑表格的链接:

<a class="btn btn-success btn-xs" href="<?php echo SITE_URL."update?z=$zone_id" ?>" >Edit</a>

现在在 update.php 页面中,网址如下所示:

http://localhost/aponit/dev/update?z=55

现在我想 url 应该像下面这样:

http://localhost/aponit/dev/update/55

如何使用 .htaccess 做到这一点?

注意:使用当前的 .htaccess 规则,我只隐藏了网址中的 .php 扩展名

我当前的 .htaccess 文件

ErrorDocument 404 /not-found.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteRule ^aponit/dev/update/([0-9]+) aponit/dev/update.php?z=$1 [L]

【问题讨论】:

    标签: php apache .htaccess mod-rewrite


    【解决方案1】:

    试试这个: 更改您的链接:

    <a href="http://localhost/aponit/dev/update/<?php echo $zone_id ?>" >Edit</a>
    

    用代码更新您的.htaccess

    RewriteEngine on
    RewriteRule ^aponit/dev/update/([0-9]+) aponit/dev/update.php?z=$1 [L]
    

    希望对你有帮助:)

    更新 .htaccess :

    ErrorDocument 404 /not-found.php
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*)$ $1.php [NC,L]
    RewriteRule ^aponit/dev/update/([0-9]+) aponit/dev/update.php?z=$1 [L]
    

    【讨论】:

    • 那我应该把链接改成这样:update/$zone_id 吗?
    • 不,网址应该是:localhost/aponit/dev/update/55,因此我应该更改我现有的编辑链接代码 FROM " >编辑 TO " >编辑
    • 再次检查我的答案。
    • RewriteRule ^aponit/dev/update/([0-9]+) aponit/dev/update.php?z=$1 [L]
    • 我只是在给定的 .htaccess 文件中添加这一行:RewriteRule ^aponit/dev/update/([0-9]+) aponit/dev/update.php?z=$1 [L]
    【解决方案2】:

    尝试在您的.htaccess 中使用此规则。在此之前,请确保您的浏览器缓存已被清除,并且该规则位于您的 .htaccess 的顶部。

    RewriteEngine On
    RewriteRule ^aponit/dev/update/([^/]*)$ /aponit/dev/update?z=$1 [L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多