htaccess http请求重新路由

时间:2016-04-02 02:17:03

标签: apache .htaccess

问题原因: 我在一个网站上工作并希望在不对现场网站进行编辑的情况下进行处理。我的托管包允许"无限"域。因此,我没有购买域名,而是在尝试使用这个新域名进行开发,而不是编辑实时网站,我创建了一个新域名。

手头问题: 此问题是参考文件路径不再起作用,并在尝试加载网页时返回404。我的原始网站目录结构如下所示

cgi-bin
config
public_html
    ->JSfiles
    ->CSSfiles
    ->PHPfiles

新的是相同的结构,但是当你打开"临时网址" URL看起来像这样

http://217.199.187.199/myTempAddress.com/"

而不是

http://myTempAddress.com/

所以当我的index.html文件查找/JSfiles/someJSfile.js时它的请求

http://217.199.187.199/JSfiles/someJSfile.js

何时需要请求

http://217.199.187.199/myTempAddress.com/JSfiles/someJSfile.js

我尝试过的事情不成功: 我真的想通过重定向服务器根目录中的.htaccess文件来解决这个问题。我尝试使用以下指令但没有成功。

Redirect /217.199.187.199/JSfiles/mustache.min.js http://217.199.187.199/myTempAddress.com/JSfiles/mustache.min.js
Redirect /JSfiles http://217.199.187.199/myTempAddress.com/JSfiles/
Redirect /JSfiles http://217.199.187.199/myTempAddress.com/
Redirect /JSfiles 217.199.187.199/myTempAddress.com/

问题: 如何将请求重定向到正确的位置?我需要所有请求的格式为http://217.199.187.199/myTempAddress.com/someDir/Somefile.ex

1 个答案:

答案 0 :(得分:1)

您需要详细了解虚拟主机,特别是基于名称的虚拟主机。

https://httpd.apache.org/docs/current/vhosts/name-based.html

听起来您的提供商可能支持基于名称的VHost,但您尝试做的并不是利用它。要做你想做的事情,即使用mod_rewrite最好地实现指向不同版本网站的路径。见这个

https://httpd.apache.org/docs/2.4/rewrite/remapping.html

您需要确保您提供的实际支持此内容。