【问题标题】:htaccess redirect directory but not files in directoryhtaccess 重定向目录但不是目录中的文件
【发布时间】:2019-02-01 10:26:06
【问题描述】:

我需要重定向自:

http://example.com/folder

http://example.com/

但是离开:

http://example.com/folder/file

这可能吗?

我见过this question,但它只适用于子文件夹而不适用于文件。

【问题讨论】:

标签: php .htaccess redirect


【解决方案1】:

根据您的问题,有两种情况,您可以选择合适的一种:

第一:

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,7}\s/folder/?\sHTTP.*$
RewriteRule ^(.*)$    / [R=302,L]
RewriteRule ^$    /folder/ [L]

您捕获了http://example.com/folderhttp://example.com/folder/ 两个请求,然后将其中任何一个从外部重定向到http://example.com/,但仍从该文件夹内部获取数据。

第二:

RewriteEngine On 
RewriteCond %{REQUEST_URI} /folder/?$
RewriteRule ^(.*)$    /  [R=302,L]

您捕获http://example.com/folderhttp://example.com/folder/ 两个请求,然后将其中任何一个重定向到http://example.com/

在这两种情况下,对http://example.com/folder/file 的任何请求都将保持原样。

注意:如果任何一个都ok,把R=302改成R=301为永久重定向

【讨论】:

    【解决方案2】:

    试试这个

    RewriteCond %{REQUEST_URI} ^/folder/?$
    RewriteCond %{REQUEST_URI} !^/folder/file$
    RewriteRule (.*) / [R=301,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-04
      • 1970-01-01
      • 2012-12-30
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      相关资源
      最近更新 更多