• 締切済み

.htaccessのRewriteEngineの設定について

フォルダ構成は以下のとおりです。 C:\xampp\htdocs\test\app test ┬.htaccess   └app┬index.php        http://localhost/test/page-unavailable/とブラウザのアドレスに 表示されると思ったのですが、うまくいきません。 表示された画面は添付ファイルのとおりです。 そこで、添付ファイルの画面のとおりに表示されるのは、通常は このましくないので、http.confに次のように書き換えました。 Options Indexes FollowSymLinks の行を、 Options -Indexes FollowSymLinks に変更してApacheを再起動すると、 Error 403が表示されました。 .htaccessの中身はいかのとおりです。 ご教授よろしくおねがいします。 # AddType x-mapp-php5 .php # AddHandler x-mapp-php5 .php RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] ErrorDocument 404 /page-unavailable/ <files ~ "\.tpl$"> order deny,allow allow from none deny from all </files>

  • PHP
  • 回答数1
  • ありがとう数0

みんなの回答

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

ディレクトリのインデックス表示をさせないだけなら、mod_rewriteは使わず、 Options FollowSymLinks だけでよいのでは。

関連するQ&A

  • .htaccessの設定について

    .htaccessの設定について以下のように記述しましたが、 404のページに飛んでしまいます。 REQUEST_FILENAMEが見つからないときは、index.phpに飛んでくれる設定ではないのですか? それとも、REQUEST_FILENAMEに直接フルパスをhtt;//xxx.net/という風に指定してくれるものなのでしょうか? よろしくお願いします。 <記述したコード> AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] ErrorDocument 404 /page-unavailable/ <files ~ "\.tpl$"> order deny,allow allow from none deny from all </files>

  • RewriteEngine on について

    こんにちは。 SEOの一環として、「http://www.AAA.jp」へのアクセスを「http://AAA.jp」へリダイレクトさせる為に、.htaccess を設定してみたのですが、思惑通りうまくいきません。 ご指導願います。 .htaccess の中身全文を掲載します。 ---------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.AAA\.jp)(:80)? [NC] RewriteRule ^(.*) http://AAA.jp/$1 [R=301,L] Redirect permanent /sub1 http://sub1.AAA.jp/ Redirect permanent /sub2 http://sub2.AAA.jp/ order deny,allow ---------------- 一部関係なさそうなコードが入ってますが、私の無知識が引き金になっていたら、と思ったので、敢えて全文を掲載させて頂きました。 サーバーは、ロリポップです。 どこか間違っている箇所はございますでしょうか? よろしくお願いします。

  • .htaccessの記述間違いを教えてください

    .htaccessを使用して、アクセス制御を行おうとしたのですが、アップロードしてアクセスしてみるとすべてのアクセスがブロックされてしまいました。 制御したい事柄は以下の通りです。 ファイルの「.htaccessと.htpasswdと.class.php」にはアクセスできないようにすること。 IPアドレス88.80.10.1は、アクセス拒否 ユーザーエージェントの「MorfeusとZmEu」の名前がつくものは、FORBIDDEN を返すというものです。 以下 .htaccess の記述内容 ----------------------------------- <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> <Files ~ "\.class\.php$"> deny from all </Files> Order allow,deny Deny from 88.80.10.1 RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_USER_AGENT} ^Morfeus RewriteRule ^.*$ - [F] RewriteCond %{HTTP_USER_AGENT} ^ZmEu RewriteRule ^.*$ - [F] ----------------------------------- 何卒よろしくお願いいたします。

  • mod_rewrite(.htaccess)で静的化したいのですが。。

    mod_Rewrite(.htaccess)を使って静的化をしようとしています。 設定内容は、以下にしています。 --------------------- ■httpd.conf DocumentRoot "/var/www/html/" <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html/"> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> --------------------- ■.htaccess RewriteEngine on RewriteRule ^/free/([0-9,a-z,A-Z]+)$ /free/index.php?action=$1 --------------------- 上記の設定だと次ページが表示されません。 また、httpd.confの設定に以下を追加すると正常に次ページが表示され、URLの静的化されます。 --------------------- RewriteEngine on RewriteRule ^/free/([0-9,a-z,A-Z]+)$ /free/index.php?action=$1 --------------------- .htaccessが有効になっていないか、もしくは.htaccessの格納場所が間違えているかと 思っているのですが、いろいろ試してみましたが結局うまくいきません。 .htaccessの格納場所は、http://ローカルIP/free/配下に置いてあります。 どなたかご存知の方はいらっしゃいますでしょうか。 上記の設定内容だけだと情報が足りないなどございましたら、おっしゃってください。 宜しくお願い致します。

  • ローカルhtaccessが有効かどうか確認する

    ローカルでphpを勉強しています。 拡張子なしでも表示させるために、 httpd_confとhtaccessを利用して実現しようとしていますが、 どうも上手くいきません。 httpd_confは、 <Directory /> Options FollowSymLinks   #AllowOverride None AllowOverride All Order allow,deny Deny from all </Directory> <Directory "C:/xampplite/htdocs"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options Indexes FollowSymLinks Includes ExecCGI # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # #AllowOverride None AllowOverride All # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory> としています。 htaccessには、 php_value default_charset UTF-8 php_value mbstring.language Japanese php_value mbstring.detect_order SJIS,EUC-JP,JIS,UTF-8,ASCII php_value mbstring.http_input auto php_value mbstring.http_output pass php_value mbstring.internal_encoding UTF-8 php_value mbstring.substitute_character none php_flag mbstring.encoding_translation OFF date.timezone = Asia/Tokyo Options +MultiViews AddType text/html .php AddType application/x-httpd-php .html としています。 実は先日まで、なんなく拡張子無しでファイルにアクセスでき、 開発も普通に行っていました。 ですが、突然、拡張子なしのファイルにアクセスすると、 Object not found! Error 404 がでます。 何らかの設定変更などが気づかずに行われた可能性が高いです、 どうも原因を切り分けことができず、あれもこれも試しましたが元通りの拡張し無しでアクセスが できないままです。 そこで、 まず、htaccessそのものが有効になっているか、機能しているか調べたいと思います。 これはどうすれば分かり易く判定できますでしょうか? htaccesssになにか記述したりすると、有効だと判定したりできますか? または、httpd_conf自体に 問題があるのかもしれません。 でも、どうみても無いようなきがします。 とにかく、htaccessが効いてるかどうかしりたいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • .htaccessの設置について

    HPを制作したのですが、ソース内の文字を文字化けさせたくて .htaccessを設置したのですが見れてしまいます。 属性も604にしました。 内容は Options -Indexes DirectoryIndex index.html index.htm index.cgi index.php <Files ~ "\.(htpasswd|htaccess|txt|log|csv|xls|dat)$"> deny from all </Files> です。 これだけではダメなのでしょうか?

    • ベストアンサー
    • HTML
  • .htaccessについて

    「ロリポップレンタルサーバー」で.htaccessファイルを設置したのですが、 なぜか「500エラー」が出てしまいます。 何が原因なのか分からないでしょうか? 【問題の.htaccessファイル】 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options +MultiViews Options -Indexes ErrorDocument 401 http://hoge.com/error/401.htm ErrorDocument 403 http://hoge.com/error/403.htm ErrorDocument 404 http://hoge.com/error/404.htm ErrorDocument 500 http://hoge.com/error/500.htm RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.hoge\.com)(:80)? [NC] RewriteRule ^(.*) http://hoge.com/$1 [R=301,L] DirectoryIndex index.htm Redirect permanent http://hoge.com/sub http://sub.hoge.com/ order deny,allow [EOF] ちなみに「.htaccess Editor」というサイトで作ったものを少しいじりました。

  • .htaccessアクセス制限で404が表示される

    こんにちは。 【質問】 現在、社内資料(画像ファイル)を社内の営業所間で共有する為、サーバーにアルバムシステム(gallery2)を入れて利用しております。 社外からの閲覧制限をかける為、.htaccessに各営業所のIPアドレスを登録する事で社内でのみ閲覧可能にしています。 最近、同じサーバにワードプレスをインストール位のタイミングで、アルバムシステムにアクセスすると、win機の半数位のPCで404のエラーページが表示され打開する方法を探っています。 【試した事】 尚、試しに.htaccessの中を(allow from 000.000.00→allow from all)にした際正常に表示が戻りました。 セキュリティソフトが入っていないPC、ブラウザのセキュリティのレベルを最低に落としても症状の改善はありませんでした。 【症状が出るPC環境】 症状のあるPCは、ブラウザ(IE7・8 firefox クローム)・OSに関係なく404になります。 数台あるmacでは正常に表示されております。 宜しくお願いします。 ■以下.htaccessの中身です。 #アクセス許可 order deny,allow deny from all allow from 000.000.000.00 allow from 000.000.000.00 allow from 000.000.000.00 allow from 000.000.000.00 allow from 000.000.000.00 allow from 000.000.000.00 # BEGIN Url Rewrite section # (Automatically generated. Do not edit this section) <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /rough2/ RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_FILENAME} gallery\_remote2\.php RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . - [L] RewriteCond %{THE_REQUEST} \ /rough2/v/slideshowapplet.html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=slideshowapplet.SlideshowApplet [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/v/slideshow.html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=slideshow.Slideshow [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/admin/(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.SiteAdmin [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/v/(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.ShowItem [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/c/view/([0-9]+).html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.ItemAdmin&g2_subView=comment.ShowComments&g2_itemId=%1 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/c/add/([0-9]+).html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.ItemAdmin&g2_subView=comment.AddComment&g2_itemId=%1 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/v/([^?]+)/slideshowapplet.html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=slideshowapplet.SlideshowApplet&g2_path=%1 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/d/([0-9]+)-([0-9]+)/([^\/]+)(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.DownloadItem&g2_itemId=%1&g2_serialNumber=%2 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/v/([^?]+)/slideshow.html(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=slideshow.Slideshow&g2_path=%1 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/v/([^?]+)(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_view=core.ShowItem&g2_path=%1 [QSA,L] RewriteCond %{THE_REQUEST} \ /rough2/([^?]+)(\?.|\ .) RewriteCond %{REQUEST_FILENAME} !main\.php RewriteRule . /rough2/main.php?g2_controller=migrate.Redirect&g2_path=%1 [QSA,L] </IfModule> # END Url Rewrite section

  • Apacheの.htaccessにおけるルート

    apacheの学習中です。 Apacheで、ユーザーディレクトリを有効にしました。 ユーザーディレクトリ内で、 <a href="/">トップページへ</a> とすると、きちんと各ユーザーディレクトリのトップページへいくことを確認しました。 しかし、.htaccess内で ErrorDocument 404 /error/file_not_found.html とし、エラードキュメントを変更しようとすると、エラーページが正しく表示されませんでした。ログを見ると、以下のようになっていました。 File does not exist: /var/www/error/file_not_found.html どうやら、htaccessにおいてのルートディレクトリ指定が、各ユーザー個別のルートディレクトリになっていないようです。htaccessの/を各ユーザーのルートディレクトリに指定するには、どのように設定すればよいでしょうか? 現在、ユーザーディレクトリは以下のように設定しています。すいません。学習中なので、設定におかしなところがあるかもしれません。 <Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Indexes Limit Options MultiViews FollowSymLinks IncludesNoExec <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> 原因が分かる方がいらっしゃれば、ご指摘くださると嬉しいです。 よろしくお願いいたします。

  • .htaccessについて教えてください。

    添付した画像のようなディレクトリ構造のサイトをつくりAndroidとiPhoneからのアクセスのみを許可するように (1)の.htaccessには SetEnvIf User-Agent "Android" ok1 SetEnvIf User-Agent "iPhone" ok2 order deny,allow deny from all allow from env=ok1 allow from env=ok2 と記述し、 http://adcde.heteml.jp/access/index.htmlからだけのjsファイルへのアクセスを許可しようと (2)の.htaccessには SetEnvIf Referer "^http://adcde\.heteml\.jp" ShowOK SetEnvIf Referer "^$" ShowOK <Files ~ "\.(js)$"> order deny,allow deny from all allow from env=ShowOK </Files> と記述しました。 PCからhttp://adcde.heteml.jp/accessとすると403 errorForbiddenとなり思ったようにいくのですが、PCからhttp://adcde.heteml.jp/access/js/test.jsとするとjavascriptの中身が表示されてしまいます。 AndroidとiPhone以外からのアクセスは(1)の.htaccessで拒否されるのでは?また、(2)の.htaccessでjsファイルへの直リンクを避けているのでは?と、うまくきません。.htaccessの記述や設置する場所、またヘテムルのサーバー側の原因かなどを教えていただきたく思い投稿しました。いろいろなサイトを調べながらの.htaccessの知識で、あまりよく分かっていません。詳しく教えていただければありがたいです。よろしくお願いします。

専門家に質問してみよう