繁体   English   中英

.htaccess从文件夹中检索子域(不是301重定向)?

[英].htaccess retrieve from folder if subdomain, not 301 redirecting?

如果请求是子域,我希望我的站点仅指向/ user文件夹。

如果请求是subdomain.site.com/admin,则该站点应显示subdomain.site.com/user/admin的页面。

我的代码的问题是它使301重定向,而不是仅保留url地址。

我的代码如下所示:

<IfModule mod_rewrite.c>

DirectoryIndex index.php

RewriteEngine on
RewriteBase / 

RewriteCond %{HTTP_HOST} !^www.bildsida.se(.*)
RewriteCond %{HTTP_HOST} ^[^.]+.bildsida.se(.*)

RewriteRule ^$ user/$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) user/$1 [L]

</IfModule>

您可以自己尝试,请访问http://mickes.bildsida.se/admin,然后查看地址如何更改为/ user / admin。 很烦人...

您只需要显示几行即可完成此工作。

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.bildsida.se
RewriteCond %{HTTP_HOST} ^.+\.bildsida\.se

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

我调整了HTTP_HOST检查,因为该参数仅查看域名,因此您不需要最后的(。*)。 我还删除了检查文件是否存在或为目录的检查,因为您希望所有内容都重定向(例如,没有理由使从其他子域访问文件成为可能)

您的代码可以简化为以下几行:(改为尝试)

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?bildsida\.se [NC]
RewriteRule ^(.*)$ /user/$1 [QSA,L]

最后! 经过日复一日的阅读论坛和文档,并测试了所有可能的方式之后,我开始工作了!

抽提:

<IfModule mod_rewrite.c>

    DirectoryIndex index.php

    RewriteEngine on
    RewriteBase /

    RewriteCond %{HTTP_HOST} !^www.bildsida.se
    RewriteCond %{HTTP_HOST} !^bildsida.se

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^$ user/index.php [L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)? user/$1/ [QSA]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule /(.+)/ user/$1 [QSA]

</IfModule>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM