【问题标题】:htaccess alias to subfolder of main domainhtaccess 主域子文件夹的别名
【发布时间】:2020-08-08 10:19:15
【问题描述】:

我的主域website1.com 有虚拟主机,并且我有一个别名指向website2.com 的同一服务器。我在website1.com/projects/{project} 运行我所有的项目。

所以我想要website2.com 显示位于website1.com/projects/website2 的网站内容。

我的.htaccess此时看起来如下:

RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
RewriteRule !^projects/website2 /projects/website2%{REQUEST_URI} [L,NC]

这可行,但是,当我点击此网站上的任何链接时,URL 将链接到 website2.com/projects/website2/something.html,我希望是 website2.com/something.html。

如何编辑我的.htaccess 以完成此操作或我做错了什么?

另外,我可以为*.website2.com/something.html 添加一个通配符来引用projects/website2/*/something.html吗?

【问题讨论】:

  • "该 url 将链接到 website2.com/projects/website2/something.html" - 您是说您点击的内部链接(即 href 属性的内容)是 URL 所述的吗?还是其他原因导致此文件系统路径暴露?
  • @MrWhite 感谢您的回复,查看源代码时,href 属性没有暴露文件路径,但是当我将光标悬停在链接上时,我看到(在浏览器的左下角)与文件路径链接,所以我不确定这是为什么?
  • 点击链接前浏览器地址栏中的网址是什么?

标签: .htaccess pointers alias subdirectory


【解决方案1】:

您不能从htaccess 文件修改网站的内容。您可以将用户指向其他地方 - 他们到达那里后看到的内容与 mod_rewrite 不同。

mod_rewrite 重写请求的 URLs - 它不知道或控制资源定位后返回的内容。

您需要实际修改您的网站和/或托管配置以实现此目的。

作为一种解决方法,您可以通过添加另一个 RewriteRule 来支持这些 website2/ 链接

# Your existing rule
RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
RewriteRule !^projects/website2 /projects/website2%{REQUEST_URI} [L,NC]
# An additional rule to handle the website2 links
RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
RewriteRule ^projects/website2/(.*)$ $1 [R,L,NC]

路径^projects/website2/(.*)$ 捕获$1 中website2/ 之后的所有内容,然后返回客户端HTTP 重定向。因此,当您的访问者悬停时,他们会在链接中看到 projects/website2/,但链接应该可以正常工作,并且浏览器中的地址栏会显示为您想要的样子。

另外,我可以为 .website2.com/something.html 添加一个通配符来引用 projects/website2//something.html

就.htaccess 而言,您只需稍微更改RewriteCond:^(www\.)? 变为^(.*\.)? - 而不是可选的“www 点”,它指定了一个可选的“任何点”。但是网络服务器需要查看 this htaccess 文件以获取另一个域,而您无法在此处控制它。试一试,你会很快看到它是否有效。

【讨论】:

    【解决方案2】:

    检查这条修改后的规则,也许有帮助。

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?website2\.com$ [NC]
    RewriteCond %{REQUEST_URI} !projects/website2
    RewriteRule ^(.*)$ /projects/website2/$1 [L,NC]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      • 1970-01-01
      • 2022-01-17
      • 2017-12-24
      • 2011-02-20
      • 1970-01-01
      • 2013-01-20
      相关资源
      最近更新 更多