您好我有以下页面:
1st site folder: www.site.com /www/www1/
2nd site folder: www2.site.com /www/www2/
Ajax Folder: /www/ajax/
CDN Folder: /www/cdn/
www
和www2
网站使用了一些ajax的东西,因为我不想为每个网站创建一个自己的ajax文件夹,我想使用相同的目录,我想要做的是以下内容:
我有www
和www2
个网站,每个网站必须使用相同的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-domain ajax重新编码我的所有javascript,这就是我想要这样做的原因。
我的托管服务提供商无法编辑httpd.conf,所以这是我使用.htaccess的唯一机会。
我也试过alias
但是没有用。
答案 0 :(得分: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。换句话说,除非那里有东西,否则不要路由,否则就像正常那样只是404。