質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CMS

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

2921閲覧

CMSの .htaccess リライトルールで複数のディレクトリやサブディレクトリを除外したいです。

qkm10

総合スコア16

CMS

CMS(Content Management System)は複数のユーザーでコンテンツを編集することが可能なWebサイトの管理/構築用のプラットフォームを指します。また、会社単位で運用管理するものはECMと呼びます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2016/08/05 03:42

お世話になります。
初めて質問させていただきます。

###前提・実現したいこと
CMSの.htaccess のリライトルールで複数のディレクトリを除外したいと考えております。
除外したいディレクトリ(下層も含めて)
(ドメイン)/in/
(ドメイン)/file/
(ドメイン)/pr/hoge/

CMS(a-blog cms)に書かれていた一つのディレクトリを除外するサンプルは下記のように書かれておりました。

###該当のソースコード

htaccess

1RewriteEngine on 2 3#RewriteBase / 4 5RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 6 7RewriteCond %{REQUEST_URI} ^(.*)index.html$ 8RewriteRule ^(.*)index.html$ http://%{HTTP_HOST}/$1 [R=301,L] 9 10RewriteCond %{REQUEST_URI} !/?other/? 11RewriteCond %{REQUEST_FILENAME} -f 12RewriteRule .* - [L] 13 14RewriteCond %{REQUEST_URI} !/?other/? 15RewriteCond %{REQUEST_URI} (.*(^|/)[^\./]+)$ 16RewriteRule .* %1/ [L,R=301] 17 18RewriteCond %{REQUEST_URI} !/?other/? 19RewriteRule ((\.(html|htm|php|xml|txt|js|json|css|yaml|csv))|/)$ index.php [L] 20

###試したこと
下記のようにな記述に変更したところ意図しないURLも除外対象になってしまうようです。

RewriteEngine on #RewriteBase / RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_URI} ^(.*)index.html$ RewriteRule ^(.*)index.html$ http://%{HTTP_HOST}/$1 [R=301,L] RewriteCond %{REQUEST_URI} !/?(in|file|pr/hoge)/? RewriteCond %{REQUEST_FILENAME} -f RewriteRule .* - [L] RewriteCond %{REQUEST_URI} !/?(in|file|pr/hoge)/? RewriteCond %{REQUEST_URI} (.*(^|/)[^\./]+)$ RewriteRule .* %1/ [L,R=301] RewriteCond %{REQUEST_URI} !/?(in|file|pr/hoge)/? RewriteRule ((\.(html|htm|php|xml|txt|js|json|css|yaml|csv))|/)$ index.php [L]

どのような記述に変更したらよいでしょうか。

###補足情報(言語/FW/ツール等のバージョンなど)
CMS:a-blog cms。
サーバ: Xserver

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

a-blog cms に必要なルールがわかりませんが、ルールの先頭の方で「-」+[L]または[END]フラグで終了すればいいのではないでしょうか。

(Apache httpd 2.4) RewriteEngine on RewriteRule ^in/ - [END] RewriteRule ^file/ - [END] RewriteRule ^pr/hoge/ - [END] (Apache httpd 2.2) RewriteEngine on RewriteRule ^in/ - [L] RewriteRule ^file/ - [L] RewriteRule ^pr/hoge/ - [L]

投稿2016/08/07 08:09

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qkm10

2016/08/09 03:46

私の質問にご丁寧に返答いただきありがとうございます。 RewriteCondでなんとかならないかしか考えておらず、ご回答は大変参考になりました。 apacheのバージョンによっても記述が変わること、知らなかったため改めて調べるようにいたします。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問