【问题标题】:.htaccess redirect url ending with.htaccess 重定向网址以
【发布时间】:2014-12-25 18:08:03
【问题描述】:

如何重定向以 catalogue.php 结尾的 url,例如

http://www.example.com/catalogue.php

http://www.example.com/all

不影响像http://www.example.com/catalogue.php?title=titleName&page=2这样的url

尝试了以下代码:

RewriteCond %{REQUEST_URI} /catalogue.php
RewriteRule ^(.*)$ www.example.com/all/$1 [R=301,L]

【问题讨论】:

    标签: .htaccess mod-rewrite redirect


    【解决方案1】:

    试试这个:

    RewriteCond %{QUERY_STRING} ^$
    RewriteRule ^catalogue\.php$ /all [R=301,L]
    

    只有在请求 /catalogue.php 时,您才会被重定向,不带任何查询字符串参数。

    如果您需要指定它们,您可以将第一行更改为类似于:

    RewriteCond %{QUERY_STRING} !title|titleName|page
    

    仅当未指定titletitleNamepage 参数时,才会执行此处重定向。

    已添加

    如果catalogue.php 可能在子文件夹中,请使用:

    RewriteRule (^|/)catalogue\.php$ /all [R=301,L]
    

    您可以阅读有关regular expressions 的更多信息以了解其工作原理。

    【讨论】:

    • /catalogue.php 重定向到 /all/catalogue.php?title(或任何其他带有查询字符串参数的请求)不会被重定向。你需要别的东西吗?请描述预期结果。
    • 当我去 /catalogue.php 时,url 应该只重定向到 /all
    • 当转到/catalogue.php?title时,什么都不做
    • 我的第一个代码完全按照您的描述工作。当没有指定参数时,页面重定向。当至少出现一个(任何名称)时,什么都不会发生。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2013-06-05
    相关资源
    最近更新 更多