我对URL重写没有或很少了解。我在HostGator上使用多域主机并遇到问题。我想将每个网站放在一个包含主域名的文件夹中。
所以我想把我的网站放在
public_html/site1
public_html/site2
public_html/site3
HostGator说我的主域必须指向public_html
文件夹,我不能直接指向site1
文件夹。我需要在这里使用url重写。我不想在我的主域名网址中使用www
,我想从子目录运行该网站。
有人可以给我完整的代码吗?我的主要问题是主域。我可以管理的辅助域名。
答案 0 :(得分:0)
此代码适用于将主域名重定向到site1.com
到子目录/site1
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteCond %{REQUEST_URI} !^/site1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site1/$1
RewriteCond %{HTTP_HOST} ^(www.)?site1.com$
RewriteRule ^(/)?$ site1/index.php [L]
但我仍然无法从我的主域名网址中删除www.
答案 1 :(得分:0)
试试这个
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
答案 2 :(得分:0)
我没有对此进行测试,但它是您原始代码和Swaraj的答案的组合:
RewriteEngine on
# Remove www. from primary domain
# per Swaraj's answer
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=302,QSA,NC,L]
# Per your code, rewrite to site1 directory
RewriteCond %{HTTP_HOST} ^site1.com$
RewriteCond %{REQUEST_URI} !^/site1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site1/$1
# Per your code, show primary domain root
RewriteCond %{HTTP_HOST} ^site1.com$
RewriteRule ^(/)?$ site1/index.php [L]