【问题标题】:How to alter the url of a directory如何更改目录的url
【发布时间】:2010-08-25 04:29:08
【问题描述】:

我需要更改目录的 url,以便:

www.example.com/foo/

变成

www.example.com

我无法移动文件。

使用 mod_rewrite 放置一个 htaccess 文件来简单地将 www.example.com 重写为 www.example.com/foo 不是问题

RewriteEngine On
RewriteRule !^foo/ foo%{REQUEST_URI} [L]

但是我必须确保如果用户请求 www.example.com/foo,http 状态为 404 或用户被重定向到 www.example.com。不幸的是,无论我做什么,它似乎都以无限循环告终。例如,这会导致无限重定向循环:

RewriteEngine On
RewriteRule !^foo/ foo%{REQUEST_URI} [L]

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

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    您需要以发送到服务器的原始请求为条件,因为%{REQUEST_URI}会在mod_rewrite处理期间发生变化,从而导致内部重定向循环。

    因此,这样的事情应该会处理好事情(对于 404,如果你想换入,你的 301 RewriteRule 应该也可以正常工作):

    RewriteCond %{THE_REQUEST} ^[A-Z]+\s/foo [NC]
    RewriteRule ^ - [R=404]
    

    【讨论】:

      猜你喜欢
      • 2016-06-12
      • 2021-09-30
      • 1970-01-01
      • 2018-07-13
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多