これは、Apacheの[301]のリダイレクトについては多少なりともですが、Joomla CMSには他のいくつかの必要なルールがあります。Apache 2.4のJoomlaで再起動した後に古いURLをリダイレクトする
私たちはJoomla 3でウェブサイトをリニューアルしました。古いものは、他のいくつかのCMSでした。 これで、古いURLを新しい場所にリダイレクトします(301)。
問題はこれが機能していないようです。 私は、私たちのすべての症例に合った解決策(約300点)を得たいと考えています。ここで
は、我々は(新しい=>古い)リダイレクトしたいといくつかの例です:
/index.php?CID=1 =>/
/index.php?CID=2&Kat=1$ =>/
/index.php?CID=3&Kat=2&PID=100 => /new/path
/old/path/file.extention => /new/file/path
/old/page.html => /new/page
/show_image.php?image=123456.jpg&text=Very%20Long%TEXT => /new/path/location
/show_image.php?image=654321.jpg&text=Very%20Long%TEXT => /other/path/location
私はすでにのようないくつかのRewriteRules試してみました:
についてはRewriteRule ^/index\.php\?CID=1$ http://%{HTTP_HOST}/ [R=301,L]
OR
RedirectMatch 301 ^/index\.php\?CID=1$/
を一部のURLはRedirectMatchのバージョンは動作しますが、ほとんどはそうではありません。特に、/index.phpで始まるすべてのURLではなく、これはJoomlaのエントリーポイントであるためです。
Joomla RewriteRuleがアクティブになる前に、/index.phpで始まるような具体的なURLをリダイレクトする方法はありますか?
RewriteEngineがオンで、デフォルトのhtaccessがJoomlaで動作しています:SEF URLとURLリライトが有効になっています。
正しい方向にヒントを教えてください。あなたはそれを知っていない場合はTHXここ
がデフォルトJoomlaの.htaccessの設定です:
ところで<IfModule autoindex>
IndexIgnore *
</IfModule>
Options +FollowSymlinks
Options -Indexes
RewriteEngine On
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteBase/
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]