绑定域名重定向到子文件夹

编程入门 行业动态 更新时间:2024-10-21 20:34:06
本文介绍了绑定域名重定向到子文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有2个域名:

  • maindomain
  • parkeddomain

具有 parkeddomain 域之前,我的的.htaccess 是:

RewriteEngine叙述上 的RewriteBase / 的RewriteCond%{} REQUEST_FILENAME!-f 的RewriteCond%{} REQUEST_FILENAME!-d 重写规则。*的index.php [L]

现在,我有新的域,我想重定向子文件夹中访问: /公园/ 所以基本上,如果下面的URI将显示完全一样的页面:

  • www.maindomain/park/
  • www.parkeddomain/

我试图做一个的.htaccess 规则是:

RewriteEngine叙述上 的RewriteBase / 的RewriteCond%{HTTP_HOST} ^(WWW)?parkeddomain $ 重写规则^(。*)$ /公园/ $ 1 [L] 的RewriteCond%{} REQUEST_FILENAME!-f 的RewriteCond%{} REQUEST_FILENAME!-d 重写规则。*的index.php [L]

但对于一个奇怪的原因,园区的 [L] 条款重写规则产生一个内部 500错误,和我没有访问日志文件:(

任何解决办法? 感谢:)

解决方案

您有500错误很可能是因为您的规则进入一个重写循环。试试这个规则来代替:

的RewriteCond%{HTTP_HOST} ^(WWW)?parkeddomain \ .COM $ [NC] 重写规则^(。*)$ www.maindomain/park/$1 [R = 302,L]

  • 这是302重定向时间(因为你的域名停放,有一天,你可以决定真正开始使用它)。但是,如果你真的想可以使301永久重定向

  • 如果用户来通过parkeddomain(如 www.parkeddomain/hello )的规则将正常工作。

  • 如果您不想在浏览器重定向(使URL仍显示 www.parkeddomain/hello 而不是 www.maindomain/park/hello ),用这个来代替:

    的RewriteCond%{HTTP_HOST} ^(WWW)?parkeddomain \ .COM $ [NC] 的RewriteCond%{REQUEST_URI}!^ /公园/ 重写规则^(。*)$ /公园/ $ 1 [L]

    更新 此规则将允许改写即使这种网址: parkeddomain/park/index.php - > /park/park/index.php

    的RewriteCond%{HTTP_HOST} ^(WWW)?parkeddomain \ .COM $ [NC] 的RewriteCond%{ENV:REDIRECT_STATUS} ^ $ 的RewriteCond%{DOCUMENT_ROOT} /公园/ $ 1 -F 重写规则^(。*)$ /公园/ $ 1 [L]

    请注意:,因为它使用了%{ENV:REDIRECT_STATUS} 是可以不是你的托管工作(这是用来检测重写循环,使该规则只重写一次)。

    I have 2 domain:

    • maindomain
    • parkeddomain

    Before having the parkeddomain domain, my .htaccess was:

    RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]

    Now that I have the new domain, I want to redirect the visits in a subfolder: /park/ So basically, if the following URI would display the exact same page:

    • www.maindomain/park/
    • www.parkeddomain/

    My attempt to make a .htaccess rule was:

    RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(www.)?parkeddomain$ RewriteRule ^(.*)$ /park/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L]

    But for a strange reason, the [L] clause of the park RewriteRule generate an internal 500 error, and I don't have access to the log file :(

    Any solution ? thanks :)

    解决方案

    You have 500 error most likely because your rule enters into a rewrite loop. Try this rule instead:

    RewriteCond %{HTTP_HOST} ^(www.)?parkeddomain\$ [NC] RewriteRule ^(.*)$ www.maindomain/park/$1 [R=302,L]

  • It is 302 temporal redirect (because your domain is parked and one day you may decide to actually start using it). But if you really want to can make it 301 Permanent redirect

  • The rule will work if user come via parkeddomain (e.g. www.parkeddomain/hello).

  • If you do not want redirect (so URL in a browser still shows www.parkeddomain/hello instead of www.maindomain/park/hello), use this instead:

    RewriteCond %{HTTP_HOST} ^(www.)?parkeddomain\$ [NC] RewriteCond %{REQUEST_URI} !^/park/ RewriteRule ^(.*)$ /park/$1 [L]

    UPDATE This rule will allow to rewrite even this kind of URLs: parkeddomain/park/index.php -> /park/park/index.php

    RewriteCond %{HTTP_HOST} ^(www.)?parkeddomain\$ [NC] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{DOCUMENT_ROOT}/park/$1 -f RewriteRule ^(.*)$ /park/$1 [L]

    PLEASE NOTE: Because it uses %{ENV:REDIRECT_STATUS} it may not work on your hosting (this is used to detect rewrite loop so the rule is only rewritten once).

    更多推荐

    绑定域名重定向到子文件夹

    本文发布于:2023-10-31 13:04:24,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1546167.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:绑定   文件夹   重定向   域名

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!