人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

htaccessでアドバイスをいただきたいです。

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
RewriteRule ^(.*/)$ $1.html
# Replace html with your file extension, eg: php, htm, asp
</IfModule>
order deny,allow

【実現したいこと】
http://q.hatena.ne.jp/enterをクリックすると
http://q.hatena.ne.jp/enter.htmlが表示されるようになりました。

しかし、
http://q.hatena.ne.jp/enter/をクリックした場合、表示できません。

http://q.hatena.ne.jp/enter/をクリックしてhttp://q.hatena.ne.jp/enter.htmlを表示させるにはどのような記述が必要でしょうか。

恐れ入りますが、何卒、宜しくお願いします。

●質問者: ak
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント
RewriteRule ^(.*/)$ $1.html

の、括弧の内側に入っているスラッシュを、括弧の外に出せば、上手くいきそうな気がします。

RewriteRule ^(.*)/$ $1.html




追記です。

実ははずしてもダメだったんです涙

では、この2行を、

RewriteRule ^(.*)$ $1.html
RewriteRule ^(.*/)$ $1.html

この1行に変えてみたらどうですか。

RewriteRule ^(.*)/?$ $1.html

もしくは、こう。

RewriteRule ^(.*)/$ $1.html [L]
RewriteRule ^(.*)$ $1.html

akさんのコメント
実ははずしてもダメだったんです涙 すみません。

a-kuma3さんのコメント
回答に、追記しました。

akさんのコメント
すみません。すべてためしたのですがダメでした涙 なにか他の設定が原因なのでしょうか・・・汗

a-kuma3さんのコメント
ああ、この条件で、はじかれちゃってるんですね。 >|| RewriteCond %{REQUEST_FILENAME}\.html -f ||< 全体として、こんな感じにしてみてはどうでしょうか。 >|| <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [L] RewriteRule ^(.*)/$ $1.html # Replace html with your file extension, eg: php, htm, asp </IfModule> ||<

akさんのコメント
何度もすみませんダメでした涙 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, info@wappy.ne.jp and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. が表示されてしまいます。

a-kuma3さんのコメント
こちらこそ、何度も済みません >< ぼくのところでは、こんな感じで動きました。 >|| <IfModule mod_rewrite.c> RewriteEngine On RewriteLog /var/log/apache_rewrite.log RewriteLogLevel 3 RewriteRule ^(.*)/$ $1.html [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [L] </IfModule> ||< RewriteLog と RewriteLogLevel は、うまく変換できるようになったら外しちゃってください。 変換がうまくいかないようであれば、RewriteLog で指定したログの中身を確認してみてください。 後、実際に試している環境では、きっとルールを書き換えてるのだと思いますけれど、もし、 >> Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. << が出るようであれば、Apache のエラーログも確認してみてください。 写し間違いがあるような気がします。

a-kuma3さんのコメント
先のコメントで試したのは、.htaccess じゃなくて、httpd.conf での定義です。 .htaccess だと、動作が変わっちゃうんですよね...

akさんのコメント
あっそうだったんですね涙 レンタルサーバーのwappy を使っているのですが、 レンサバだと難しそうですね涙 すみませんいろいろアドバイスいただいたのにも関わらず・・・
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ