【问题标题】:mod_rewrite URL with many variables带有许多变量的 mod_rewrite URL
【发布时间】:2013-07-05 19:40:12
【问题描述】:

我是 mod-rewrite 的新手,我尝试 mod-rewrite 这个 url 没有成功。

这样的网址结构:

http://mysite.com/script.php?id=15751890&xp=862297&wm=1721&ls=2725&he=63530&ks=23050&eath=53588&tk=10&ck=john&rk=37

我想把它改写成:

http://mysite.com/script.php?id=15751890

或者:

http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37

我关注了这个http://wettone.com/code/clean-urls 和这个http://net.tutsplus.com/tutorials/other/a-deeper-look-at-mod_rewrite-for-apache/

但是写不出来

在 htaccess 文件中输入什么

【问题讨论】:

  • 我假设你的意思是相反的——你想用查询字符串重写干净的 URL 到脚本?到目前为止你有什么?
  • 没有查询字符串(如果我理解你的话)我在 URL 中有 GET 变量,只想隐藏所有变量,除了一个使用 mod-rewrite 的变量。他们告诉我这是怎么做的

标签: php mod-rewrite


【解决方案1】:

好吧,如果你真的想写这样的重写,你应该可以在你的 htaccess 文件中使用它。可能有更好的方法来处理 URL,但是我给了你你所要求的。

注意:我将不再使用您提供的 URL。

RewriteEngine on
RewriteRule (.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*)/(.*) script.php?id=$1&xp=$2&wm=$3&ls=$4&he=$5&ks=$6&eath=$7&tk=$8&ck=$9&rk=$10&%{QUERY_STRING}$ [L]

所以你可以使用这种类型的 URL 进行重写。

http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37

【讨论】:

  • 是的。你可以在这里测试它。 htaccess.madewithlove.be你从来没有说过什么是行不通的,也没有举例说明你所做的任何努力。无论如何..祝你好运。
【解决方案2】:

参考我对这个问题的回答:

php, handle unique URLs

这会给你这个:

http://mysite.com/15751890/862297/1721/2725/63530/23050/53588/10/john/37

【讨论】:

    【解决方案3】:

    您应该学习 MVC 路由方法,而不是试图找出每个可能的重写组合。

    这样,您将 所有内容 路由到 PHP 路由器,然后根据需要将请求定向到控制器等。

    HTACCESS 重写一切:

    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule . index.php [L]
    

    在您的 PHP 脚本中,您可以使用:$_SERVER['REQUEST_URI'] 来获取请求的 URI。

    示例:http://example.com/foo/bar/95 将重写为 index.php,然后 $_SERVER['REQUEST_URI'] 将是 /foo/bar/95 - 然后您进行相应的路由。

    通常,您的 URL 结构如下:

    http://example.com/controller/action/param_1/param_2/param_3/etc

    而“动作”只是控制器方法的另一个名称。如何编码取决于您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-21
      相关资源
      最近更新 更多