0

私の既存のワードプレス サイトでは、特定のページ用のカスタム テンプレート ファイルを使用してページをセットアップしています。スラッグ /at/ に従って、このページの Wordpress パーマリンクの書き換え

次に、いくつかの追加変数を使用して、このページのさまざまなデータを取得します

http://websitename.com/at/?h=s3fgh

そして、このURLをhtaccessで次のように書き換えたいと思います

http://websitename.com/at/s3fgh

しかし、それを機能させることはできないようです。現時点では、htaccess ファイルを修正しようとしましたが、望ましい結果は得られませんでした

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^at/([a-zA-Z0-9_-]+)/?$  /index.php?page_id=113&h=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

ここで、113 は特定のページ ID に等しい

4

1 に答える 1

1

質問の完全なルールセットを次のルールセットに置き換えてみてください。

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Add this line
RewriteCond %{REQUEST_URI}   !/at/  [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# /at/ folder rule
RewriteCond %{REQUEST_URI}   !index\.php                [NC]
RewriteRule ^at/([^/]+)/?   /index.php?page_id=113&h=$1 [NC,L]

最後のルールは、この要求された URL を暗黙的にマップします。

http://websitename.com/at/anything

質問のルールに従って、これに:

http://websitename.com/index.php?page_id=113&h=anything

オプション

このオプションが必要なのは、質問が 1 つのことを言い、同じ質問 ( ? ) に含まれるルールが別のことを示しているためです。今回は質問の例に固執しましょう。

上記のルール セットの最後の 3 行を次の行に置き換えます。

# /at/ folder rule
RewriteCond %{QUERY_STRING} !h=        [NC]
RewriteRule ^at/([^/]+)/?   /at/?h=$1  [NC,L]

この要求された URL をサイレントにマップします。

http://websitename.com/at/anything

質問のURLの例によると、これに:

http://websitename.com/at/?h=anything

于 2013-03-24T08:26:06.127 に答える