具有.htaccess的虚拟目录



你好,我有以下页面:

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域ajax重新编码所有的javascript,这就是我想要这样做的原因。我的主机提供商无法编辑httpd.conf,所以这是我使用.htaccess的唯一机会。我也试过alias,但不起作用。

试着把它放在文档根目录的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。

最新更新