2つの異なるブランケットリダイレクト(WordPressパーマリンク用に1つ)を使用したURL書き換え

StackOverflow https://stackoverflow.com/questions/410933

質問

ページリクエストを制御する比較的複雑な.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ファイルを作成し、関連するルールをそこに配置しました-完全に機能しているようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top