-1

すべてのコミュニティ サイトから /web/ を削除できるように URL を書き換える方法がわかりません。

domain.com/web/communitysite1/page
domain.com/web/communitysite2/page
domain.com/web/communitysite3/page
domain.com/web/communitysite4/page

そして、私はそうであってほしい、

domain.com/communitysite1/page
domain.com/communitysite2/page
domain.com/communitysite3/page
domain.com/communitysite4/page

これはLiferayからのスレッドで、仮想ホストを使用したソリューションです。ただし、それはその 1 つのドメインのコミュニティ サイトの 1 つだけですが、私が行っているすべてのコミュニティ サイトでドメインがすべて同じである必要があります。

4

2 に答える 2

0

親切な助けをありがとう@Yazmat。@Prakash Kこれが私が現在使用しているもので、プロキシmodを使用した別のソリューションです。

ProxyHTMLExtended On ProxyHTMLEnable On SetOutputFilter INFLATE;proxy-html;DEFLATE ProxyHTMLURLMap ^/web/(.*)$ /$1 Rli

于 2012-09-20T20:25:49.103 に答える
0

まず、ページのリンクを domain.com/web/community... から domain.com/community に手動で変更する必要があります。

その後、ユーザーに通知せずに新しい URL を古い URL に書き換える書き換えルールが必要です。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^web/
RewriteRule ^(.*)$ /web/$1 [L,QSA]

次に、古い URL にアクセスしているユーザーを新しい URL にリダイレクトし、ブラウザのリンクを変更するためのルールが必要になります。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} ^web/
RewriteRule ^web/(.*)$ /$1 [L,QSA,R=301]

次に、それを混同する必要がありますが、そうすると無限ループが発生するため、それを回避するために何かが必要です(私が使用するトリックは、オプションのパラメーターを最初のルールに追加し、次の場合に2番目のルールをチェックインすることです存在するかどうか、存在する場合はリダイレクトしません):

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} ^web/
RewriteCond %{QUERY_STRING} !(.*&)?r=0(&.*)?$
RewriteRule ^web/(.*)$ /$1 [L,QSA,R=301]

RewriteCond %{REQUEST_FILENAME} !^web/
RewriteRule ^(.*)$ /web/$1?r=0 [L,QSA]
于 2012-09-14T14:13:05.627 に答える