2012-08-02 152 views
0

你好,我有以下页面:虚拟目录

1st site folder: www.site.com /www/www1/ 
2nd site folder: www2.site.com /www/www2/ 
Ajax Folder: /www/ajax/ 
CDN Folder: /www/cdn/ 

wwwwww2网站使用一些Ajax的东西,因为我不希望创建自己的ajax文件夹中的每个站点,我想使用同一目录下,我想要做的是:

我有我的wwwwww2网站,每一个都必须使用相同的AJAX的文件夹,我尝试创建一个虚拟文件夹,连接到我的AJAX文件夹中每一个。

所以必须www.site.com/ajax/myfileajax.php?id=1 也为www2.site.com/ajax/myfileajax.php?id=2

林用的.htaccess尝试,但没有运气只是一个404错误

RewriteRule /inc/^(.*) ../ajax/$1 [L] 

我不想重新编写我的X域阿贾克斯所有的JavaScript这就是为什么我想要这样做。 我的托管服务提供商无法编辑httpd.conf,所以这是我使用.htaccess的唯一机会。 我也试过alias,但不起作用。

回答

0

尝试把这个地方在htaccess文件合适你的文档根(我假设是/ WWW /):

RewriteEngine On 

# for www.site.com 
RewriteCond %{HTTP_HOST} www.site.com [NC] 

# check that the request needs to be routed (ajax/cdn don't need to be routed) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# check that we get routed to an existing file or directory 
RewriteCond %{DOCUMENT_ROOT}/www1%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/www1%{REQUEST_URI} -d 

# Do the route to /www1/ 
RewriteRule !^/?www1 /www1%{REQUEST_URI} [L] 


# for www2.site.com 
RewriteCond %{HTTP_HOST} www2.site.com [NC] 

# check that the request needs to be routed (ajax/cdn don't need to be routed) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# check that we get routed to an existing file or directory 
RewriteCond %{DOCUMENT_ROOT}/www2%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/www2%{REQUEST_URI} -d 

# Do the route to /www2/ 
RewriteRule !^/?www2 /www2%{REQUEST_URI} [L] 

第一次检查是确定主机名的请求是对。第二个检查是请求不是针对现有资源。如果请求是/ajax/myfileajax.php,那么如果该文件存在于/ ajax /目录中,则不需要执行任何路由。第三个检查是确定我们是否路由,我们将URI指向现有资源。这一点只是让404错误报告请求的URI而不是前面附加/www1/的URI。换句话说,除非有什么东西,否则不要路由,否则就像正常情况一样。

+0

我的document_root是/ www/www1 /和/ www/www2/ – 2012-08-02 21:19:45

+0

@EnriqueBenitez然后,您不能使用htaccess写入文档根目录之外的URI。您可以将'ajax'和'cdn'符号链接到www1和www2,并确保'FollowSymLinks'选项处于打开状态 – 2012-08-02 21:42:27