Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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和tilde(~)重定向_Apache_.htaccess - Fatal编程技术网

Apache Htaccess和tilde(~)重定向

Apache Htaccess和tilde(~)重定向,apache,.htaccess,Apache,.htaccess,我正在帮助一个朋友将一个网站从一个服务器移动到另一个服务器。 现在它没有域名,所以为了测试我有这样一个url: 在html文件夹中的原始站点有一个私有和公共文件夹,服务器收到的每个请求都必须重定向到一个同名但位于公共文件夹中的文件 问题是我无法使.htaccess重定向正常工作 我首先做了一个简单的测试,效果很好: RewriteEngine on RewriteCond %{REQUEST_URI} !^/~samplesite/public RewriteRule ^(.*)$ /~sam

我正在帮助一个朋友将一个网站从一个服务器移动到另一个服务器。 现在它没有域名,所以为了测试我有这样一个url:

在html文件夹中的原始站点有一个私有和公共文件夹,服务器收到的每个请求都必须重定向到一个同名但位于公共文件夹中的文件

问题是我无法使.htaccess重定向正常工作

我首先做了一个简单的测试,效果很好:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/~samplesite/public
RewriteRule ^(.*)$ /~samplesite/public/redirect.html [NC,L]
因此,站点收到的每个请求都将显示这个redirct.html页面

现在,当我尝试更改以进行正确的重定向时,它给了我404,这是我已经测试过的:

RewriteRule ^~samplesite/?(.*)$ /~samplesite/public/redirect.html [NC,L]
RewriteRule ^(.*)samplesite(.*)/?$ /~samplesite/public/redirect.html [NC,L]
第二个是将~samplesite映射到服务器/home/samplesite/public\u html上的正确文件夹结构

我不知道我是否遗漏了什么,有什么建议吗


感谢

经过一些尝试和错误,使用R=302,我得出结论,~samplesite在请求URI中,因此它不会在重写规则中得到测试

我如何测试:

RewriteRule ^(.*)$ /~samplesite/public/redirect.html?=%{REQUEST_URI}&?=$1 [NC,L,R=302]
最后规则:

RewriteRule ^(.*)$ /~samplesite/public/$1 [NC,L]