残念ながら、私のウェブサイトのホストは複数の.htaccess
を持たせないため、パスの親と子の仮想/物理URLのすべてのルールを含めることを強制されます。私のディレクトリツリーは次のとおりです。
これは私のhtaccessのコードです:
RewriteEngine On +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/$ /$1? [R=301,L]
RewriteCond %{HTTP_Host} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
RewriteRule ^amixermusic/escuchar/(.+) /amixermusic/escuchar.php?id=$1
RewriteRule ^amixermusic/buscar/([^/]*)/?(.*) /amixermusic/index.php?q=$1&p=$2
RewriteCond %{QUERY_STRING} fb_action_ids=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
RewriteCond %{QUERY_STRING} fb_comment_id=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
行がfb_action_ids
を削除することを除いて、すべて正常に動作します。何を変えるべきか分かりません。 「いいね」ボタンは「escuchar.php
」にあることを忘れていました。これは、PHPを使用してウィンドウのURLを自動的に取得して生成されます。だから私はステートメントがディレクトリを指定すべきだと思う?
ファイルの最後にあるため、ルールは実行されていないと思われます。 [L]
フラグが付いた「最後の」ルールとしてマークされている他のルールの後に続きます。ルールをファイルの先頭に移動するだけで役立ちます。
条件を次のようにすることで、それを単一のルールに結合することもできます。
RewriteCond %{QUERY_STRING} fb_(action|comment)_id