【问题标题】:.htaccess convert a url parameter in folders.htaccess 转换文件夹中的 url 参数
【发布时间】:2012-10-22 08:59:31
【问题描述】:

我尝试使用 RewriteRule 转换文件夹中的 url 参数。 任何人都可以帮助我吗?。

来源: search.php?term=red&cat=colors 目的地: /search/red/colors

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    this answer clarifies how URLs get rewritten and redirected 的顶部。使用“convert”并不是很清楚,因为可能会发生两种完全不同的事情。

    要将/search.php?term=red&cat=colors 之类的 URL 更改为更好看的变体,您需要匹配实际请求并重定向浏览器:

    RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /search\.php\?term=([^&]+)&cat=([^&\ ]+)
    RewriteRule ^ /search/%2/%3/? [L,R=301]
    

    这使得当有人在浏览器中键入 URL:http://mysite.com/search.php?term=red&cat=colors 时,他们会被外部重定向到 http://mysite.com/search/red/colors,从而更改地址栏中的 URL。

    然后为了在内部重写更好看的 URL 并将其路由回 php 脚本:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/?search/([^/]+)/([^/]+)/?$ /search.php?term=$1&cat=$2 [L]
    

    这会反过来,但只是在内部,以便浏览器地址栏中的 URL 保持不变,而内容是从 search.php 提供的。您可以根据自己的需要做一个或另一个,或者如果您需要双向进行,您可以同时做这两个。

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 2021-05-08
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多