好了,我遇到了一个关于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或者类似的东西,它就能工作……
发布于 2012-11-25 10:37:27
好了,在花了很多时间和玩耍之后,是文件请求没有包括子域文件夹,这导致它找不到文件位置。所以我设法对文件做了手动检查,这就是我得到的。这似乎就是我想要的。我不确定是否有更有效的方法,但这就是它所得到的。
#-------------------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-24 21:46:32
您需要更改第二条规则,以便仅当请求为^(/)?$时才应用它,然后您需要重复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]https://stackoverflow.com/questions/13541742
复制相似问题