【问题标题】:How to rewrite a url without variables to one containing variables如何将没有变量的url重写为包含变量的url
【发布时间】:2015-05-25 20:20:43
【问题描述】:

我是重写的新手,所以我什至不确定这是否可行。

我有这个网址:http://my.domain.com/index.php?CID=2

我想输入http://my.domain.com/meet-our-team 并在不显示真实网址的情况下显示上述页面(index.php?CID=2)。

这是我的 .htaccess 文件中的内容:

RewriteEngine  on
RewriteRule ^meet-our-team$ index.php?CID=2 [NC,L]

这似乎将我重定向到我的主页。我该如何进行这种简单的重写?

谢谢你, 卢克

【问题讨论】:

  • 此规则没有重定向。在新的浏览器中尝试。还有更多规则吗?

标签: php apache .htaccess mod-rewrite url-rewriting


【解决方案1】:

我发现了两件事:

【讨论】:

    【解决方案2】:

    @syntrax - 谢谢,我也找到了这些和其他类似的帖子,但由于我不相信我正在按照它们的预期方式使用重写规则这一事实,我无法从他们那里得到太多帮助。

    我想做的是创建任何 SEF url(例如 example.com/this-is-my-sef-page)并让它指向一个通常类似于 example.com/index.php?catid=1$id=5.

    看起来我所能做的就是重写原始网址中的内容,所以我需要使用这样的方法:http://moz.com/ugc/using-mod-rewrite-to-convert-dynamic-urls-to-seo-friendly-urls

    该方法没有为我创建一个足够干净的 sef url,所以我的解决方案是让一个有效 url 重定向列表都指向我的 index.php 页面:

    RewriteRule ^my-sef-url$ index.php
    RewriteRule ^my-other-sef-url$ index.php
    

    index.php 根据 sef 映射表检查 url,并根据数据库中的 sef 映射显示适当的页面。这比创建复杂的 .htaccess 规则要容易得多,并且可以让我在我的 sef url 上更加灵活。

    【讨论】:

      【解决方案3】:

      您需要使用mod_rewrite将URL相应地重写为.htaccess。

      Desired URL = www.yoursite.com/index/users/add/
      
      
      
      URL = www.yoursite.com/index.php?controller=users&option=add
      
      
      
      .htaccess code :
      RewriteRule ^index/(.*)/(.*)\.html index.php?controller=$1&option=$2 [QSA]
      

      因此您将在 GET 方法变量中获得“用户”和“添加”值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        • 1970-01-01
        • 2019-03-07
        相关资源
        最近更新 更多