【问题标题】:Remove first variable from query string via htaccess通过 htaccess 从查询字符串中删除第一个变量
【发布时间】:2014-01-26 11:48:54
【问题描述】:

我使用以下代码重写了我的这个网址:

http://example.com/foldername/New-York-Mills.php?ff_nm_from=new+york&search=hotel&location=north+park

用'/'替换查询字符串,所以它是http://example.com/foldername/sa/new+york/hotel/north+park

我通过以下 htaccess 代码实现了这一点。

RewriteCond %{THE_REQUEST} \ /+foldername/New-York-Mills\.php\?ff_nm_from=([^&]+)&search=([^&\ ]+)&location=([^&\ ]+)
RewriteRule ^ /foldername/sa/%1/%2/%3? [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^foldername/sa/([^/]+)/([^/]+)/([^/]+)$ /Just-dial/New-York-Mills.php?ff_nm_from=$1&search=$2&location=$3 [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /style.css [NC]
RedirectMatch 301 ^/(.*)\%2[Cc](.*)$ /$1$2?

RewriteRule ^foldername/sa/(.+)/(.+)/(.+)/(.+)/? foldername/sa/$1.php?ff_nm_from=$2&search=$3&location=$4

但我希望我的网址如下所示。这意味着我想在查询字符串之后从 url 中删除第一个变量。 http://example.com/foldername/New-York-Mills/hotel/north+park

如何使用 .htaccess 文件来完成?

【问题讨论】:

  • 澄清一下,你是想把http://example.com/foldername/New-York-Mills.php?ff_nm_from=new+york&search=hotel&location=north park改写成http://example.com/foldername/New-York-Mills/hotel/north+park吗?

标签: php .htaccess url redirect rewrite


【解决方案1】:

如果我理解正确,您可以将您的第一组重写条件和规则替换为:

RewriteCond %{THE_REQUEST} ^/foldername/New-York-Mills\.php
RewriteCond %{QUERY_STRING} ff_nm_from=([^&]+)&search=([^&\ ]+)&location=([^&\ ]+)
RewriteRule ^ /foldername/New-York-Mills/%2/%3? [L,R=301]

【讨论】:

    猜你喜欢
    • 2013-06-21
    • 2011-07-28
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多