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/

www各サイトにwww2独自の ajax フォルダーを作成したくないので、サイトはいくつかの ajax を使用します。同じディレクトリを使用したいのですが、やりたいことは次のとおりです。

私にはwwwサイトwww2があり、それぞれが同じ ajax フォルダーを使用する必要があります。私の ajax フォルダーに接続するそれぞれに仮想フォルダーを作成しようとしています。

またwww.site.com/ajax/myfileajax.php?id=1www2.site.com/ajax/myfileajax.php?id=2

.htaccess を試してみましたが、404 エラーだけでうまくいきませんでした

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

x-domain ajax 用にすべての JavaScript を再コーディングしたくないので、これをやりたいのです。私のホスティング プロバイダーは httpd.conf を編集できないため、これが .htaccess の唯一のチャンスです。私も試しaliasましたがうまくいきません。

4

1 に答える 1

0

これを、ドキュメント ルート (/www/ と仮定します) の htaccess ファイルの適切な場所に配置してみてください。

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]

最初のチェックは、リクエストの対象となるホスト名を決定することです。2 番目のチェックは、リクエストが既存のリソースに対するものではないことです。リクエストの場合、/ajax/myfileajax.phpそのファイルが /ajax/ ディレクトリに存在する場合、ルーティングを行う必要はありません。3 番目のチェックは、ルーティングした場合、URI が既存のリソースを指していることを確認することです。/www1/このビットは、404 エラーが前に追加された URI ではなく、要求された URI を報告するためのものです。つまり、そこに何かがない限りルーティングしないでください。それ以外の場合は、通常どおり 404 のままにします。

于 2012-08-02T21:09:45.970 に答える