【问题标题】:URL rewrite in .htaccess file.htaccess 文件中的 URL 重写
【发布时间】:2011-04-08 20:59:00
【问题描述】:

我当前的 .htaccess 中有两个问题。下面的脚本有效,但有一个限制

RewriteRule ^products/([0-9])$ /products/$1/ [R]
RewriteRule ^products/([0-9])/$ /viewad.php?adid=$1

限制:如果 addid, 大于 10,则失败。我希望它有任何数字仍然存在并且可以工作。我目前的解决方案是每次 id 高于范围时添加它。

RewriteRule ^products/([0-9][0-9])$ /products/$1/ [R]
RewriteRule ^products/([0-9][0-9])/$ /viewad.php?adid=$1 

有人可以改进或解释如何更正此规则以使数字超出范围。

问题二。 映射多个 $_GET 变量。

说我有一个这样的网址

http://veepiz.com/africanews.php?app=view&func=viewcategory&categoryid=2&page=1

我会写什么规则让它成为这种格式。

http://veepiz.com/africanews/category/2/page/1

http://veepiz.com/africanews/2/1

非常感谢您的时间

【问题讨论】:

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


    【解决方案1】:

    第一个问题:

    RewriteRule ^products/([0-9]+)$ /products/$1/ [R]
    RewriteRule ^products/([0-9]+)/$ /viewad.php?adid=$1
    

    或者更好:

    RewriteRule ^products/(\d+)/?$ /viewad.php?adid=$1
    

    问题二:

    RewriteRule ^africanews/(\d+)/(\d+)$ /africanews.php?app=view&func=viewcategory&categoryid=$1&page=$2
    

    【讨论】:

    • 非常感谢 aularon。有人对问题 2 有答案吗?
    • 好的,当我为问题 2 提供带有斜杠的链接时,规则失败。我已经这样做了,但它失败了 RewriteRule ^africanews/(\d+)/(\d+)$ /africanews/$1 /$2/ [R]
    【解决方案2】:

    这解决了问题 2(感谢 aularon):

    RewriteRule ^africanews/(\d+)/(\d+)$ /africanews/$1/$2/ [R]
    RewriteRule ^africanews/(\d+)/(\d+)/$ /africanews.php?app=view&func=viewcategory&categoryid=$1&page=$2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      相关资源
      最近更新 更多