我在基于Apache 2.4和
的多个子域的www.main.com上托管www.sub1.main.com, www.sub2.main.com, ....
文件夹结构为
/home/main/.htaccess + project files and subdomain folders like:
/home/public-html/main/sub1.main.com/.htaccess
/home/public-html/main/sub1/.htaccess + project1 files
/home/public-html/main/sub2/.htaccess + project2 files
等
子域是基于不同技术的单独项目
基于AngularJS的/ home / main /网站,具有标准的angular .httaccess配置:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]
我想在sub.main.com中拥有另一个.htaccsess配置,如下所示:
RewriteEngine On
RewriteRule ^$ http://127.0.0.1:3000/ [P,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api$ http://127.0.0.1:3000/$1 [P,L]
哪个代理应该将我的Apache流量重定向到我的nodejs服务器。
在某些时候,我的子域重定向不起作用。仅在主文件夹中有效。
所以我有3个问题:
是否应为.httaccess主域中的所有域配置所有规则? (由于潜在的网址冲突,并不是很不错)
是否可以将主要的.htaccess配置为仅允许其他子域使用其自己的.httaccess
.httaccess子域的正确位置在哪里?
此处-/home/public-html/main/sub1.main.com/.htaccess 或者在这里-/home/public-html/main/sub1/.htaccess + project1文件
这是共享主机,只能访问apache配置。 我只能使用.httaccess方式,我没有更改虚拟主机的权限,因此请仅提供.httaccess解决方案。
以上两个代码段均有效,也不会重定向任何节点,而只能重定向到主文件夹/主文件夹,而不重定向子域。
每个子域需要特殊的.htaccess来托管多个项目
答案 0 :(得分:0)
我为想要在共享主机上使用nodeJS的任何人找到了解决方案:
在以下位置进入/ home / main / www / .htaccess:
RewriteEngine on
RewriteOptions inherit
RewriteCond %{HTTP_HOST} ^main\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.main\.org$
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/.+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^/?$ "http\:\/\/angular\.main\.org\/" [R=301,L]
RewriteBase /
RewriteCond %{REQUEST_URI} !^/node/
# Rewrites all URLS node.main to node server
RewriteCond %{HTTP_HOST} ^(www\.)?node.main\.
# Redirect to node server
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P, L]
在/ home / main / www / angular内部放入.htaccess,如:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*) /index.html [NC,L]
,我们在节点文件夹中不需要任何.htaccess 我希望它对遇到相同问题的人有所帮助。