2つの異なるブランケットリダイレクト(WordPressパーマリンク用に1つ)を使用したURL書き換え
-
03-07-2019 - |
質問
ページリクエストを制御する比較的複雑な.htaccessファイルがあります。これは、WordPressインストールを含む1つのディレクトリを除き、ファイルのすべてのリクエストを(一部のタイプを除外して)現在インデックスファイルにリダイレクトします。
WordPress PermaLinkサポートを有効にする必要がありますが、.htaccessを機能するように変更するのは少し困難です。
PermaLinksは、よりSEOフレンドリーなURLを生成する必要があり、通常はWordPressによって排他的に処理されます-しかし、私の場合、詳細なここが必要です(そうでない場合は、 404レスポンス)。
現在の.htaccessの内容は次のとおりです。
RewriteEngine ON
RewriteCond %{HTTP_HOST} !^www\..*
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^([^.]*)\.(co\.uk)
RewriteRule ^.*$ http://www.%1.%2%{REQUEST_URI} [R=permanent,L]
AddHandler application/x-httpd-php .phtml
#RewriteBase /blog/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /blog/index.php [L]
RewriteBase /
RewriteRule ^blog/ - [L]
RewriteRule !\.(js|ico|gif|jpg|JPG|png|css|php|phtml|pdf|txt|xml|swf|flv)$ index.phtml
コメント化されたセクションは、WordPress PermaLink機能のルールを追加しようとして失敗した場所です。
当初、このコードは機能していると思っていましたが、実際にはいくつかの非WordPressリクエストがblog / index.phpファイルにルーティングされ、ブログから他のサイトエリアへのリンクをたどろうとすると、これらは再びルーティングされますブログindex.phpへ。
解決
まあ、私は今これを修正したと信じています-そして、後知恵での答えは明白に明白です。 / blog /ディレクトリに別の.htaccessファイルを作成し、関連するルールをそこに配置しました-完全に機能しているようです。
所属していません StackOverflow