【问题标题】:.htaccess clean url with more than 3 paramenters.htaccess clean url 参数超过 3 个
【发布时间】:2012-03-06 06:55:34
【问题描述】:

我是 .htaccess 的新手,我似乎在让它为我清理 url 时遇到了一些问题。

我有

site.com?p=article&id=3&read=article title

我可以让第一个变量像site.com/articles 一样正常工作。但是当我尝试更进一步时,服务器说它找不到它。我尝试了几种方法,但似乎都没有奏效。

RewriteRule ^([a-zA-Z0-9]+)$ index.php?p=$1
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?p=$1

上面的工作正常

我试过了

RewriteRule ^([a-zA-Z0-9-z\-]+)(/([a-zA-Z0-9-z\-]+))?/?$ index.php?p=$1&i=$2

RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/?$ index.php?p=$1&i=$2&read=$3

最后两个不工作。请帮忙。谢谢

【问题讨论】:

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


    【解决方案1】:

    让我们试试这样的事情?

    RewriteEngine On
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /index.php?p=$1&id=$2&read=$3 [L]
    

    【讨论】:

    • 嗨,感谢您的帮助。您知道文章标题中的空格是否会影响阅读方式?即 &read=blah blah blah ...谢谢
    【解决方案2】:

    %{QUERY_STRING} 是您要查找的内容。

    这是我在类似情况下使用的:

    RewriteRule   ^/(.*)  /index.php?r=/$1&%{QUERY_STRING} [L]
    

    【讨论】:

    • 嗨,感谢您的帮助。您知道文章标题中的空格是否会影响阅读方式?即 &read=blah blah blah ...谢谢
    • 空格将被编码并在浏览器中显示为 %20 如果这是您所要求的,最好不要在 URL 中使用空格,如果可能的话,我可能会用连字符替换它们。现在在我的网络浏览器中查看 URL,stackoverflow 也会用连字符替换空格。
    • 啊,好吧,所以在php中使用str_replace之类的东西?我假设你在字符串中的 r 在我的脚本中代表 p 对吗?
    猜你喜欢
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 2016-04-23
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    相关资源
    最近更新 更多