【问题标题】:How to point all folders and files to root?如何将所有文件夹和文件指向根目录?
【发布时间】:2015-07-20 05:53:04
【问题描述】:

我想将所有子文件夹和不存在的文件指向根文件夹。

www.domain.com/folder/david 到 www.domain.com/folder/

www.domain.com/folder/david/ 到 www.domain.com/folder/

【问题讨论】:

  • htaccess 重写规则,但它们不起作用
  • 这些规则是什么?请在问题中输入您尝试过的规则。
  • RewriteRule ^/folder/(.*) ?$ domain.com/folder$1 [L,R]
  • 您的.htaccess 文件是否存储在/folder/ 中?
  • 父文件夹中没有

标签: .htaccess mod-rewrite subdirectory


【解决方案1】:

您可以在/.htaccess 文件中尝试此操作:

RewriteEngine on

# Make sure the requested path does not exist (file or folder):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# If it doesn't exist, redirect it to `/folder/`
RewriteRule ^folder/(.*)/?$ /folder/? [NC,R,L]

NC 标志使规则不区分大小写。如果不需要,可以删除。

如果您希望永久重定向,请将R 标志换成R=301

如果它是否存在无关紧要,请改用以下内容:

RewriteEngine on

# Redirect everything to `/folder/`
RewriteRule ^folder/(.*)/?$ /folder/? [NC,R,L]

更新

根据您的 cmets,您似乎正在/folder/ 中运行应用程序。因此,最好将您的.htaccess 文件放在/folder/ 中,并填写以下内容:

RewriteEngine on

RewriteBase /folder/

# Make sure the requested path does not exist (file or folder):
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# If it doesn't exist, rewrite it to index.php
RewriteRule ^ index.php [NC,L]

然后,您不需要根目录中的 .htaccess 文件 - 只需要 /folder/ 中的文件。

【讨论】:

  • 它有效,但我想查看旧网址但匿名指向父文件夹
  • www.domain.com/folder/david 到 www.domain.com/folder/ 但第一个网址不要更改
  • /folder/ 中有什么内容?一个index.php 文件,也许?
  • 这个文件会处理请求吗?
  • 如何将所有以斜线结尾的url重写为删除的斜线?
猜你喜欢
  • 2014-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 2013-02-04
  • 1970-01-01
  • 2016-04-10
相关资源
最近更新 更多