3

好的所以我遇到了我的 htaccess 以及如何让它工作的问题。

我刚刚为我的主域和子域购买了一个 ssl 通配符。我和 bluehost 在一起,他们建议添加这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdomain/$1
RewriteCond %{HTTP_HOST} ^subdomain.example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]

目前我只有这个...

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ https://www.domain.com/$1 [L]

RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]

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

但是这有效,我无法得到它,所以当我打开文件时,它只会打开没有重定向的文件......所以如果我打开 sub.domain.com/file/fil1.js 它将打开 index.php这是我不想要的...

但如果我做 /browse 或类似的东西,它会起作用......

4

2 回答 2

1

好吧,经过一番折腾和玩弄之后,文件请求不包括子域文件夹,这导致它找不到文件位置。所以我设法对文件进行了手动检查,这就是我得到的。这似乎正是我想要的。我不确定是否有更有效的方法,但这就是它所得到的。

#-------------------SUB.DOMAIN.COM---------------------
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{DOCUMENT_ROOT}/sub_folder%{REQUEST_URI} -f
RewriteRule . %{DOCUMENT_ROOT}/sub_folder%{REQUEST_URI} [L]

RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . sub_folder/index.php [L]
#--------------------------------------------------------------

代替

RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]
于 2012-11-25T02:37:26.510 回答
0

您需要更改第二条规则,使其仅在请求为 时应用^(/)?$,然后您需要复制 bluehost 告诉您执行的操作。本质上,替换:

RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . sub_folder/index.php [L]

他们告诉你使用什么:

RewriteCond %{HTTP_HOST} ^sub.domain.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subdomain/$1 [L]
RewriteCond %{HTTP_HOST} ^sub.domain.com
RewriteRule ^/?$ /sub_folder/index.php [L]
于 2012-11-24T13:46:32.197 回答