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

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

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

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

Q&A

解決済

1回答

3269閲覧

上流の.htaccessファイルの影響を回避したい

mtest10811020

総合スコア44

.htaccess

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

0グッド

0クリップ

投稿2018/09/21 05:19

編集2018/09/21 05:28

前提・実現したいこと

上流フォルダの.htaccessの影響を受けないようにしたいのですが、
下流フォルダの.htaccessをどのように記載すればいいでしょうか。
ひとつづつ上書きするしか方法がないと思っておりますが、何か有効な方法がございましたら、ご教授いただけるとありがたいです。

上流フォルダの.htaccessの内容は下記になります。


RewriteEngine on

RewriteBase /

## 本番環境
RewriteCond /var/www/.production -f
RewriteRule ^.*$ - [E=APPLICATION_ENV:production]

## サポート環境
RewriteCond /var/www/.support -f
RewriteRule ^.*$ - [E=APPLICATION_ENV:support]

## テスト環境
RewriteCond /var/www/.test -f
RewriteRule ^.*$ - [E=!APPLICATION_ENV]

## HTTPSへリダイレクト
##RewriteCond %{HTTPS} !^on$
##AWS + LB+HTTPS ヘッダが存在していて、httpsではない時
RewriteCond %{HTTP:X-Forwarded-Proto} ^.
RewriteCond %{HTTP:X-Forwarded-Proto} !^https$
RewriteRule ^.*$ - [E=FORCEHTTPS:1]

##AWS時、HTTPSヘッダを設定
RewriteCond %{HTTP:X-Forwarded-Proto} ^https$
RewriteRule ^.*$ - [E=HTTPS:on]

## それ以外のテスト開発環境で、httpsを強制する場合
RewriteCond %{HTTPS} !^on$
RewriteCond /var/www/.https -f
RewriteRule ^.*$ - [E=FORCEHTTPS:1]

## テストモード時はSSLを強制しない。
RewriteCond /var/www/.test -f
RewriteRule ^.*$ - [E=!FORCEHTTPS]

## SSLへリダイレクト
RewriteCond %{ENV:FORCEHTTPS} .
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

## メンテナンスメッセージを表示する。
RewriteCond /var/www/.maintenance -f
RewriteRule ^.*$ - [E=MAINTENANCE:1]

## アクセス拒否
RewriteCond %{REQUEST_URI} ^/.svn/
RewriteRule ^.*$ - [F,L]

## XXX.XXX.XXX.XX からアクセスは許可

RewriteCond %{REMOTE_ADDR} ^XXX.XX.XXX.XXX$
RewriteRule ^.*$ - [E=!MAINTENANCE]

RewriteCond %{HTTP:X-Forwarded-For2} ^.
RewriteCond %{HTTP:X-Forwarded-For2} ^XXX.XX.XXX.XXX$
RewriteRule ^.*$ - [E=!MAINTENANCE]

RewriteCond %{HTTP:X-Forwarded-For} ^.
RewriteCond %{HTTP:X-Forwarded-For} XXX.XX.XXX.XXX
RewriteRule ^.*$ - [E=!MAINTENANCE]

## MAINTENANCE が設定されているときは、メンテナンス画面へ遷移
RewriteCond %{REQUEST_URI} !^/_error/
RewriteCond %{REQUEST_URI} !^/img/
RewriteCond %{REQUEST_URI} !/live.html
RewriteCond %{ENV:MAINTENANCE} .
RewriteRule ^.*$ - [R=503,L]

RewriteCond %{REQUEST_FILENAME} /index.(php|html)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.)/index.(.?) $1/ [L,R=301]

RewriteCond %{REQUEST_URI} !^/_error/
RewriteCond %{REQUEST_FILENAME} .html$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) /var/www/html/commontools/htmloutput.php/$1 [L]

RewriteCond %{REQUEST_URI} !^/_error/
RewriteCond %{REQUEST_FILENAME} .css$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) /var/www/html/commontools/htmloutput.php/$1 [L]

## 旧URLのリダイレクト
RewriteRule ^support.html(?.)?$ /support/ [L,R=301] [L]
RewriteRule ^qa.html(?.
)?$ /support/faq_disp.php [L,R=301]
RewriteRule ^e_tax.php(?.)?$ /product/denshi/ [L,R=301]
RewriteRule ^e_tax.html(?.
)?$ /product/denshi/download.php [L,R=301]
RewriteRule ^ordering/index.php(?.)?$ /product/info_new.html [L,R=301]
RewriteRule ^download.html(?.
)?$ /support/dl_disp.php [L,R=301]
RewriteRule ^qa.html(?.*)?$ /support/faq_disp.php [L,R=301]

##画像が存在しない時はオンデマンドでDBから取得して出力
RewriteCond %{REQUEST_URI} !^/_error/
RewriteCond %{REQUEST_URI} ^/img/images/
RewriteCond %{REQUEST_URI} .(gif|png|jpg|pdf|exe)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.) $1?__resized=1 [C,QSA]
RewriteRule ^(.
) /var/www/html/commontools/filedbread.php/$1 [L]

##画像をオンデマンドリサイズ
RewriteCond %{REQUEST_URI} !^/_error/
RewriteCond %{REQUEST_URI} .(png|jpg)$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{QUERY_STRING} !__resized=1 [NC]
RewriteCond %{QUERY_STRING} size=[0-9]+x[0-9]+[tps]?$ [NC,OR]
RewriteCond %{QUERY_STRING} size=[0-9]+$ [NC]
RewriteRule ^(.) $1?__resized=1 [C,QSA]
RewriteRule ^(.
) /var/www/html/commontools/imageresize.php/$1 [L]

php_value include_path .:/var/www/html/phplib/:/usr/share/pear:/usr/share/php:/var/www/share/php/ZendFramework-1.12.5/library:/usr/share/php/ZendFramework-1.12.5/library
php_value auto_prepend_file "common_init2.inc.php"

## phpのメモリ制限とファイルアップロード最大サイズ
php_value max_execution_time 180
php_value memory_limit 384M
php_value post_max_size 128M
php_value upload_max_filesize 128M
php_value max_input_vars 100000
#php_value display_errors 0

ErrorDocument 404 /_error/404.html
ErrorDocument 403 /_error/403.html
ErrorDocument 400 /_error/400.html
ErrorDocument 500 /_error/500.html
ErrorDocument 503 /_error/503.html

## キャッシュを強制する設定
<IFModule mod_headers.c>
# IE コンテンツタイプを無視しないように設定
Header always append X-Content-Type-Options "nosniff"
Header always append X-XSS-Protection 1
Header always append X-Frame-Options SAMEORIGIN

# DNS Prefetching 有効 Header set X-DNS-Prefetch-Control "on" # Referrerポリシー Header set Referrer-Policy 'origin, origin-when-cross-origin'

## 引数のないものは短時間キャッシュ
RewriteCond %{REQUEST_URI} .(js|css|ico|jpe?g|png|gif)$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^.*$ - [env=CACHE_SHORT:1]
Header onsuccess set Cache-Control "s-maxage=60, max-age=600" env=CACHE_SHORT

##favicon.icoは長期間キャッシュさせる
RewriteCond %{REQUEST_URI} /favicon.ico$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^.*$ - [env=CACHE_FAVICON:1]
Header onsuccess set Cache-Control "immutable, s-maxage=600, max-age=86400, stale-while-revalidate=31536000" env=CACHE_FAVICON

## 引数付きのファイルは長期間キャッシュさせる
## =引数付きのファイルは長期間キャッシュさせる
RewriteCond %{REQUEST_URI} .(js|css|ico|jpe?g|png|gif)$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{QUERY_STRING} ^[0-9a-f]+(.(js|css|ico|jpe?g|png|gif))?$ [NC,OR]
RewriteCond %{QUERY_STRING} ^(.*?&)?
=.?(&.)?$ [NC]
RewriteRule ^.*$ - [env=CACHE_LONG:1]
Header onsuccess set Cache-Control "immutable, s-maxage=600, max-age=2592000, stale-while-revalidate=31536000" env=CACHE_LONG

</IFModule>

## index.html等のないディレクトリでインデックスリストを作成しない
Options -Indexes


発生している問題・エラーメッセージ

下流に.htaccessを配置せずに、下流フォルダのhtmlファイルにアクセスすると、
404エラーになります。

試したこと

下流フォルダ(htmlファイルが存在するフォルダ)の.htaccessに下記を記入すると、
404エラーは出ません。


RewriteEngine on

RewriteBase /

Order allow,deny
Allow from all


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

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

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

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

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

guest

回答1

0

ベストアンサー

ひとつづつ上書きするしか方法がないと思っておりますが、何か有効な方法がございましたら、ご教授いただけるとありがたいです。

上位階層の.htaccessを修正できないのであれば、それしか方法が無いです。

投稿2018/09/21 14:34

otn

総合スコア84505

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問