2

ユーザーが次のような変数を渡すことを許可するルールを既に作成しました: 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
4

1 に答える 1

1

あなたは私にはうまく見えますが、試してください:RewriteRule ^/?([0-9]+)/?$ /database/?db_index=$1 [R=301]

于 2012-07-06T14:00:50.987 に答える