ユーザーが次のような変数を渡すことを許可するルールを既に作成しました: somepage.com/database/12345内部でsomepage.com/database/?db_index=12345に変更され、正常に動作します。コードは次のようになります。
RewriteBase /
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1
ここで、まったく同じことを行う必要がありますが、変数の前に「database/」を渡す必要はありません。したがって、ユーザーはsomepage.com/12345のように変数を渡すことができます。これは、前のオプションの代わりではなく、追加のオプションでなければなりません。私はそのようにこれをやろうとしました:
RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]
しかし、私はこれを機能させることができず、理由がわかりません。上記の追加コードは、以前の作業ルールの直前に挿入されます。
私の方法がうまくいかない理由について、助けと説明をいただければ幸いです。
更新: .htaccess ファイル全体は次のようになります。
# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
# direct url rewrite
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]+)/?$ /database/?db_index=$1 [L]
RewriteRule ^database/([0-9]+)/?$ /database/?db_index=$1
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress