Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 如何使用htaccess将子文件夹1中的所有项目重定向到子文件夹2,而不是子文件夹本身(永久重定向)_Apache_.htaccess_Redirect_Subdirectory - Fatal编程技术网

Apache 如何使用htaccess将子文件夹1中的所有项目重定向到子文件夹2,而不是子文件夹本身(永久重定向)

Apache 如何使用htaccess将子文件夹1中的所有项目重定向到子文件夹2,而不是子文件夹本身(永久重定向),apache,.htaccess,redirect,subdirectory,Apache,.htaccess,Redirect,Subdirectory,我们重建了一个网站,问题是我们的一些合作伙伴网站仍然链接到我们服务器上的可下载文件 例如,链接可能是example.com/download/something.exe或example.com/download/something/abc.msi 我们需要的是,如果有人访问该文件夹中的任何内容,则/download/部分应替换为/download old/,但如果有人只访问example.com/download/,则应保持原样 ` 重新启动发动机 #如果通过https://访问我们,请将“p

我们重建了一个网站,问题是我们的一些合作伙伴网站仍然链接到我们服务器上的可下载文件

例如,链接可能是
example.com/download/something.exe
example.com/download/something/abc.msi

我们需要的是,如果有人访问该文件夹中的任何内容,则
/download/
部分应替换为
/download old/
,但如果有人只访问
example.com/download/
,则应保持原样

`


重新启动发动机
#如果通过https://访问我们,请将“protossl”设置为“s”。这将在以后使用
#如果您启用“www.”剥离或强制执行,为了确保
#您不会在http和https之间跳转。
重写规则^-[E=protossl]
在上重写cond%{HTTPS}
重写规则^-[E=protossl:s]
#确保授权HTTP头对PHP可用
#即使是作为CGI或FastCGI运行。
重写规则^-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
#阻止访问名称以句点开头的“隐藏”目录。这
#包括版本控制系统(如Subversion或
#Git来存储控制文件。名称也以句点开头的文件
#作为CVS使用的控制文件,受FILEMATCH指令保护
#上面。
#
#注意:这仅在加载mod_rewrite时有效。没有mod_重写,它是
#无法阻止从.htaccess访问整个目录,因为
#这里是不允许的。
#
#如果未安装mod_rewrite,则应删除这些
#从您的webroot目录或以其他方式保护它们不被删除
#下载。
重写规则“(^ |/)\”-[F]
#如果您的站点既可以使用“www.”前缀访问,也可以不使用“www.”前缀访问,则您可以
#可以使用以下设置之一将用户重定向到您的首选
#URL,带或不带“www.”前缀。仅选择一个选项:
#
#要重定向所有用户以访问带有“www.”前缀的网站,
# (http://example.com/... 将被重定向到http://www.example.com/...)
#取消对以下内容的注释:
#重写cond%{HTTP_HOST}。
#重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
#重写规则^http%{ENV:protossl}://www.%{http_HOST}%{REQUEST_URI}[L,R=301]
#
#要重定向所有用户以访问不带“www.”前缀的站点,
# (http://www.example.com/... 将被重定向到http://example.com/...)
#取消对以下内容的注释:
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^http%{ENV:protossl}://%1%{REQUEST_URI}[L,R=301]
#如果在子目录或子目录中使用Drupal,请修改RewriteBase
#VirtualDocumentRoot和重写规则无法正常工作。
#例如,如果您的站点位于http://example.com/drupal 取消注释和
#修改以下行:
#重写BASE/drupal
#
#如果您的站点在以下位置的VirtualDocumentRoot中运行:http://example.com/,
#取消对以下行的注释:
#重写基/
###增压起动###
#允许通过htaccess规则设置alt路径;允许缓存的变体(未来的移动支持)
重写规则。*-[E=boostpath:normal]
#匿名用户的缓存
#如果未获取请求或uri有错误的目录或设置了cookie,或请求来自此服务器或https请求,则跳过boost
重写cond%{REQUEST_METHOD}^(获取|头)$[或]
RewriteCond%{REQUEST|u URI}(^/(管理|缓存|杂项|模块|站点|系统| openid |主题|节点/添加|注释/回复))|(/(编辑|用户|用户/(登录|密码|注册))$)[或]
在[或]上重写cond%{HTTPS}
重写cond%{HTTP_COOKIE}DRUPAL_UID[或]
RewriteCond%{ENV:REDIRECT_STATUS}200
重写规则。*-[S=3]
#GZIP
RewriteCond%{HTTP:Accept encoding}!gzip
重写规则。*-[S=1]
重写cond%{DOCUMENT_ROOT}/cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}{uu%{QUERY_STRING}\.html\.gz-s
重写规则。*cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}{uu%{QUERY_STRING}\.html\.gz[L,T=text/html,E=no gzip:1]
#正常的
重写cond%{DOCUMENT\u ROOT}/cache/%{ENV:boostpath}/%{HTTP\u HOST}%{REQUEST\u URI}{uu%{QUERY\u STRING}\.html-s
重写规则.*cache/%{ENV:boostpath}/%{HTTP_HOST}%{REQUEST_URI}{uu%{QUERY_STRING}\.html[L,T=text/html]
###增压端###
#将所有不直接引用文件系统中文件的请求传递给
#index.php。干净的URL在drupal_环境_initialize()中处理。
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写cond%{REQUEST_URI}=/图标文件
重写规则^index.php[L]
重写规则^/download/(.+)$/download old/$1[R=302,L]
#正确提供gzip压缩CSS和JS文件的规则。
#需要同时启用mod_重写和mod_头。
#如果存在gzip压缩的CSS文件并且客户端接受gzip,则为其提供服务。
RewriteCond%{HTTP:Accept encoding}gzip
重写cond%{REQUEST_FILENAME}\.gz-s
重写规则^(.*)\.css$1\.css\.gz[QSA]
#如果存在gzip压缩的JS文件并且客户端接受gzip,则为其提供服务。
RewriteCond%{HTTP:Accept encoding}gzip
重写cond%{REQUEST_FILENAME}\.gz-s
重写规则^(.*)\.js$1\.js\.gz[QSA]
#提供正确的内容类型,并防止mod_deflate double gzip。
重写规则\.css\.gz$-[T=text/css,E=no gzip:1]
重写规则\.js\.gz$-[T=text/javascript,E=no gzip:1]
#提供正确的编码类型。
标题集内容编码gzip
#强制代理分别缓存gzip和非gzip css/js文件。
头附加变量接受编码
`对于重定向,您有两个选项:

  • 您可以使用简单的
    RedirectMatch
    Apache指令

    RedirectMatch ^/download/(.+)$ http://%{HTTP_HOST}/download-old/$1
    
    注意:此行可以放置在行之外

    这将使用
    mod_alias
    ,因此请确保它已启用

  • 您可以使用重写规则

    RewriteRule ^download/(.+)$  http://%{HTTP_HOST}/download-old/$1 [L,R=301]
    
    RewriteRule ^download/(.+)$ http://%{HTTP_HOST}/download-old/$1 [L,R=301]