私は周りをチェックしてきましたが、私がしようとしていることを達成するための正確な構文を見つけることができないようです.
私は現在ウェブサイトを更新していますが、Google でかなり良い位置にあるため、すべてのリンクを保持したいのですが、今回はきれいな URL を使用したいと考えています。だから、私が抱えている問題は次のとおりです。
この bases-generales (general-rules) セクションがあり、これを使用して書き換えます。
RewriteRule ^bases-generales/ bases.php?locale=es_LA
私が抱えている問題は、現在の (古い) ファイルの名前が bases.php であるため、ユーザーが Google または他のリンクから直接 bases.php を開いたときに /bases-generales/ にリダイレクトされるようにしたいことです。
私が現在使用しているルールは次のとおりです。
RewriteRule /bases.php http://mysite/bases-generales/ [R=301,L]
現在、このコマンドはリダイレクトを行いますが、唯一の問題は URL が次のようになっていることです。
http://mysite/bases-generales/?locale=es_LA
もう 1 つの問題は、リダイレクト ループが発生することです。
詳細については、これは完全な htaccess です (mysite はもちろん偽物です)
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
order deny,allow
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(mysite)(:80)? [NC]
RewriteRule ^(.*) http://mysite/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mysite/$1/ [L,R=301]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteBase /
RewriteRule ^/ index.php?locale=es_LA
RewriteRule ^bases-generales/ bases.php?locale=es_LA
RewriteRule ^condiciones/ condiciones.php?locale=es_LA
RewriteRule ^programa/ programa.php?locale=es_LA
RewriteRule ^premios/ premios.php?locale=es_LA
RewriteRule ^ganadores/ ganadores.php?locale=es_LA
RewriteRule ^patrocinadores/ patrocinadores.php?locale=es_LA
RewriteRule ^galeria/ galeria.php?locale=es_LA
RewriteRule ^contacto/ contacto.php?locale=es_LA
RewriteRule ^bases.php http://mysite/bases-generales/ [R=301,L]