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