私は、いくつかのカテゴリ、ページ、投稿などがある wp ブログを持っています。これは URL スキーマです。
mysite/category/category_name
mysite/category_name/post_name
すべて正常に動作していますが、「php」という名前の新しいカテゴリで問題に直面しています。
WP ルート ディレクトリには、"php.ini" という名前のファイルがあり、これはホスティング プロバイダーによって自動的に作成され、サイトでカスタム php ディレクティブを設定できるようになっていることがわかりました。
問題は、/php/whatever で始まるすべての URL が 404 エラーを返すことです。
これは .htaccess コンテンツです:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#some redirects from renamed posts...
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
問題はこの条件にあると思います: RewriteCond %{REQUEST_FILENAME} !-f
、php.ini ファイルの名前を変更すると、すべて正常に動作するためです。URLがphp/で始まり、ファイルphp.iniが存在する場合、URLが実際にファイルを要求していなくても、条件がtrueではないため、ルールを処理しないと思います。
次のような回避策を追加しようとしました。
RewriteRule ^php/(.*)$ /index.php [L]
しかし、それは機能していません。いくつかの方法を試しましたが、常に 404 エラーが発生するため、何か間違ったことをしているに違いありません。おそらく正規表現が満たされていない場合、設定しているルールが実行されていないようです。また、次のような非静的ファイル拡張子を持つすべての請願をリダイレクトしようとしました:
RewriteRule \.(gif|jpg|jpeg|jpe|png|css|js)$ /index.php [L]
これは実際には機能しましたが、たとえば wp-admin にアクセスできません。
私が間違っていることのキューはありますか?
どうもありがとうございました。