.htaccess子域重写规则不起作用

时间:2018-05-06 19:21:47

标签: .htaccess mod-rewrite subdomain

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

网址将是例如:

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文件。

empty subdomain folder

我错过了什么?我从来没有编辑过.htaccess文件而谷歌没有帮助我(或者我不知道应该寻找什么)。

1 个答案:

答案 0 :(得分:0)

你的第一个dotfiles规则是可以的,但反过来会更好,因为第二部分只能匹配开始,但第一部分只能在子目录中匹配。

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

您的其他规则问题是您希望它与子域匹配。 RewriteRule不会对您在浏览器的地址栏中看到的整个字符串进行操作,只会对路径部分进行操作,而.htaccess中的RewriteCond也会在删除前导目录时更少。要访问所需信息,请使用RewriteCond %{HTTP_HOST} ^([^-]++)-([^-.]++)\.example\.com$ RewriteRule ^(?!project/show/).* project/show/%1/%2/$0 [L,DPI]

\.example\.com$

(如果您的主域名不包含连字符,则不需要包含data <- data.frame(Name = c(rep("A",25), rep("B",50)), Date = seq(as.Date("2018-01-01"), as.Date("2020-01-12"), by = 10), C1 = rep(c(100,NA,NA,NA,NA,500,320,102,412,NA,200,NA,145,800,230),5), C2 = rep(c(100,NA,NA,NA,NA,500,320,102,412,NA,200,NA,145,800,230),5)*2) 。)