【问题标题】:skip subdirectory when replacing underscore to hyphen from urls using .htaccess code使用 .htaccess 代码将 url 中的下划线替换为连字符时跳过子目录
【发布时间】:2015-03-02 22:41:44
【问题描述】:

出于 SEO 的目的,我必须将 _(下划线)替换为 url 中的 -(连字符)。我有数百个文件,所以我不能一个一个地更改文件名。所以我写了一些 .htaccess 代码来做到这一点。

这是我正在使用的代码。

RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L] 

它成功地将我的网址从下划线更改为连字符。

现在我有一个名为“administrator”的子目录,我不希望这个目录的网址从下划线替换为连字符。

所以我想跳过此目录的 url 以从 .htaccess 代码中跳过。

请帮助我如何跳过这个。

谢谢!

【问题讨论】:

    标签: php .htaccess url redirect directory


    【解决方案1】:

    也可以单独排除:

    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L] 
    

    如果您需要排除多个目录,则更容易,因为只需再次添加同一行。

    【讨论】:

      【解决方案2】:

      您可以使用负前瞻

      RewriteRule ^(?!administrator/)([^_]*)_(.*)$ /$1-$2 [R=301,L,NC]
      

      这将从该规则中跳过/administrator/ 子目录。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-23
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-30
        相关资源
        最近更新 更多