【问题标题】:.htaccess wildcard subdomain redirect with wildcard path 404 not found.htaccess 通配符子域重定向未找到通配符路径 404
【发布时间】:2018-05-12 17:15:04
【问题描述】:

我正在尝试使用通配符路径重定向通配符子域,它似乎可以正常工作,但是当 url 有任何路径时,会返回 404 错误。

例如,https://test.mydomain.com/ 将毫无问题地重定向到 https://new.mydomain.com/,而 https://test.mydomain.com/test 将返回未找到的 404 错误。我需要https://test.mydomain.com/test 重定向到https://new.mydomain.com/test

我目前的.htaccess文件如下

RewriteEngine on

RewriteCond %{HTTP_HOST} ^\*\.mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.\*\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ "https\:\/\/new\.mydomain\.com\/$1" [R=301,L]

任何帮助将不胜感激。谢谢

【问题讨论】:

    标签: regex .htaccess redirect mod-rewrite


    【解决方案1】:

    问题可能是重定向正在被重定向,即当test 被重定向到new 时,由于条件中的* 而再次被重定向到new。尝试如下编辑,不要将其应用于新的。

    RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$ [NC]
    RewriteCond %1 !^new$
    

    【讨论】:

    • 谢谢。我试过了,但它似乎也没有工作。在弄乱它之后,我能够通过将它添加到最后来让它工作。我不是 100% 确定这是否是最好的方法,但它对我有用,所以我想我会留在那里。重定向匹配 301 ^(.*)$ mydomaincom/.$1
    • 见上面的编辑,我想你可能会进入重定向循环
    • 我试过你的编辑。还尝试重定向到最终重定向到新子域的根域并遇到相同的问题。到目前为止,我唯一要做的就是 RedirectMatch 301 ^(.*)$ mydomaincom/.$1
    • 我将您的答案标记为您当时的最佳答案。感谢您的帮助。
    猜你喜欢
    • 2020-07-10
    • 2018-08-14
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2012-01-21
    • 2020-09-27
    相关资源
    最近更新 更多