.htaccess重写https、子域和友好URL的规则


.htaccess rewriting rules for https, subdomains and friendly urls

正如标题所示,我希望我的url是:

  1. 正在重定向到所有URL的HTTPS方案
  2. 将子域重定向到特定文件
  3. 重写url查询的用户友好链接

到目前为止我所拥有的:

RewriteEngine On
# Handle Front Controller...
RewriteCond %{HTTP_HOST} ^api'.(.*)
RewriteRule ^ api.php [L]
# Handle Front Controller...
RewriteCond %{HTTP_HOST} ^admin'.(.*)
RewriteRule ^ admin.php [L]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ website.php [L]

这样可以确保当我键入:admin.localhost时,会加载文件admin.php。api.localhost也是如此。普通localhost加载website.php文件。这里没问题。现在,我如何实现友好的url?而且,当谈到https时,我知道localhost不可能(或者可能是,我不知道),但我有一个带ssl的网站,我想在那里使用它。

经过一点修改,我找到了一个解决方案。

更新以反映我的评论:

RewriteEngine On
#Remove the comments below to enable enforcing HTTPS
#RewriteCond %{HTTPS} !=on
#RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Handle Front Controller...
RewriteCond %{HTTP_HOST} ^api'.(.*)
RewriteRule ^(.*)$ api.php?url=$1 [QSA,L]
# Handle Front Controller...
RewriteCond %{HTTP_HOST} ^admin'.(.*)
RewriteRule ^(.*)$ admin.php?url=$1 [QSA,L]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ website.php?url=$1 [QSA,L]