【问题标题】:How to make htaccess ignore part of url如何让 htaccess 忽略部分 url
【发布时间】:2016-06-27 13:41:36
【问题描述】:

我们有这个网址:example.com/automobile/?id=1234,出于 seo 的目的,需要它类似于 example.com/automobile/passenger/ferrari/?id=1234

我们希望 /passenger/ferrari/ 是可选的,因为该数据与我们的查询及其动态无关。 因此,如果用户访问 example.com/automobile/?id=1234 或 example.com/passenger/what/ever-is-written-here/?id=1234 访问原始网址:example.com/automobile /?id=1234

我们正在使用 wordpress 并且现在有这个规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.php [L]
</IfModule>

很抱歉,但它似乎不起作用。 也许我可以用一个例子来解释: 检查这个: [关联]( http://www.casaesol.com/imovel/apartamento/t2-2-quartos/venda/usado/guia-albufeira-faro/?id=2730876)

如果您更改 /apartamento/t2-2-quartos/venda/usado/guia-albufeira-faro/ 的 url 部分,它会将您带到相同的 url。 http://www.casaesol.com/imovel/?id=2730876

或者另一个例子: https://casa.sapo.pt/Apartamento-T1-Venda-Loures-Loures-Infantado-d4acc412-3146-4f8b-bc8f-820cf556f853.html

如果您将 url 的部分:Apartamento-T1-Venda-Loures-Loures-Infantado 更改为 https://casa.sapo.pt/whateveryouwrite-d4acc412-3146-4f8b-bc8f-820cf556f853.html

它指向同一个地方

【问题讨论】:

    标签: php wordpress .htaccess


    【解决方案1】:

    重定向

    • /passenger/what/ever-is-written-here/?id=1234

    • /automobile/?id=1234

    将以下内容放在您的其他规则之上:

    RewriteEngine on
    RewriteCond %{THE_REQUEST} /passenger/.+\?id=([0-9]+) [NC]
    RewriteRule ^ /automobile/?id=%1 [L,R,NE]
    

    【讨论】:

    • 感谢您的快速响应,但“/passenger/”不是文件夹,可以包含任何其他字词。我怎样才能让它接受任何单词?
    • 在这种情况下,您可以将 Condition 替换为:RewriteCond %{THE_REQUEST} /(?:(?!automobile).+)\?id=([0-9]+) [NC] 这在查询字符串之前接受除“/automobile/”之外的任何字符
    • 很抱歉,但这似乎不起作用。也许我可以用一个例子来解释:
    • 我只是希望能够在url的特定位置写一些可以忽略但仍然可以打印在浏览器上的东西。在上面的例子中他们可以做到
    猜你喜欢
    • 2016-12-13
    • 2013-10-02
    • 1970-01-01
    • 2017-09-09
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    相关资源
    最近更新 更多