【问题标题】:.htaccess redirect to subfolder and hide in uri.htaccess 重定向到子文件夹并隐藏在 uri
【发布时间】:2015-11-19 08:12:30
【问题描述】:

我想重定向每个请求:

http://subdomain.domain.com/customer/

http://subdomain.domain.com/customer/httpdocs/web/

仍然继续在浏览器中显示 http://subdomain.domain.com/customer 并使用位于“客户”文件夹中的 .htaccess 文件。

这是我的实际 .htaccess,重定向有效,但浏览器显示完整路径:

RewriteEngine On
RewriteRule ^$ httpdocs/web [L]

【问题讨论】:

  • 这看起来像是一个缓存响应 - 确保您的浏览器缓存是清晰的。此子域是否位于父域之外的子目录中?如果有,父目录是否也有 .htaccess 文件?
  • 我正在清除每个 htaccess mod 的 firefox 缓存,当然不是。子域位于,尊重 plesk9 结构,以这种方式: /var/www/vhosts/domain/subdomains/subdomain/ 并且没有其他 .htaccess
  • “每个请求” - 你的意思是/customer/<anything> 到另一个目录中对应的<anything> 吗?
  • 只是您当前的RewriteRule 不会“重定向”/customer/<anything>(仅/customer),但您说它“有效”-这让我想知道是否发生了其他事情。此外,您当前的规则不应触发外部重定向,您说它正在做什么?仅当您之前使用 R=301 标志(偶然)进行测试时,才会发生外部重定向 - 然后将被缓存。
  • @anubhava 终于成功了!请回答,以便我设置为已接受

标签: apache .htaccess mod-rewrite redirect vhosts


【解决方案1】:

要为您的子域重写任何内容,您可以使用以下规则:

RewriteEngine On

RewriteRule ^(.*)$ httpdocs/web/$1 [L]

^$ 只会重写登录页面,而.* 将匹配所有 URI。

【讨论】:

    【解决方案2】:

    试试下面的条目:

    RewriteCond %{HTTP_HOST} ^(www\.)?subdomain.domain.com RewriteRule ^/customer/(.*)$ /customer/httpdocs/web/$1 [PT,L,QSA]

    【讨论】:

    • 它不起作用(禁止)..我必须将 .htaccess 放在 /customer/ 文件夹中,所以我认为原点应该是 ./ 而不是 /customer/
    • 您可以尝试在虚拟主机中添加条目,看看是否有帮助?
    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 2014-01-25
    • 2013-03-09
    • 2019-03-23
    • 1970-01-01
    • 2014-11-24
    • 1970-01-01
    • 2017-07-17
    相关资源
    最近更新 更多