【问题标题】:.htaccess subdomain Rewrite rule is not working.htaccess 子域重写规则不起作用
【发布时间】:2018-10-16 15:16:53
【问题描述】:

我正在做一个网站建设者,我想让网址更漂亮。

网址例如:

https://ccc-bb.example.com => https://example.com/project/show/ccc/bb

这是我的 .htaccess 文件:

<IfModule mod_rewrite.c>
RewriteEngine On
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\.(?!well-known/) - [F]

# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\-(.*)$ https://example.com/project/show/$1/$2 [L]

当我在上面使用 (https://ccc-bb.example.com) 时,它会将我发送到子域空文件夹。该文件夹只有 .htaccess 文件。

我错过了什么?我从未编辑过 .htaccess 文件,Google 也没有帮助我(或者我不知道我应该寻找什么)。

【问题讨论】:

    标签: .htaccess mod-rewrite subdomain


    【解决方案1】:

    您的点文件的第一条规则是可以的,但反过来会更好,因为第二部分只能匹配开头,但第一部分只能匹配子目录。

    RewriteRule ^\.(?!well-known/)|/\. - [F]
    

    您的另一个规则的问题是您希望它与子域匹配。 RewriteRules 不会对您在浏览器地址栏中看到的整个字符串进行操作,仅对路径部分进行操作,在 .htaccess 中,由于前导目录也被剥离,他们看到的更少。要访问您想要的信息,请使用RewriteCond

    RewriteCond %{HTTP_HOST} ^([^-]++)-([^-.]++)\.example\.com$
    RewriteRule ^(?!project/show/).* project/show/%1/%2/$0 [L,DPI]
    

    (如果您的主域不包含连字符,则无需包含\.example\.com$。)

    【讨论】:

      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多