• 締切済み

アドレスの最後に/が無い場合、/ありのアドレスに飛ばしたい

mod_rewrite を使って、静的なページのようにアドレスを表示させました。 http://****.jp/page/10/ このようなアドレスでアクセスできるのですが、アドレスの最後のスラッシュがなくてもアクセスする事が出来ます。 http://****.jp/page/10 ←スラッシュがない そこで、アドレスの最後のスラッシュがないアドレスにアクセスした場合、スラッシュありのアドレスに飛ばすにはどの様にすればいいのでしょうか? .htaccessは、下記のようにしています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /page/index.php [L] </IfModule>

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

サイトのトップだけは http://www.example.jphttp://www.example.jp/ のどちらも正しいはずだが>#1. その他はそれでいいんだけど.

全文を見る
すると、全ての回答が全文表示されます。
  • PXU10652
  • ベストアンサー率38% (777/1993)
回答No.1

 ホームページのトップページを表示させるときも本当は「http://****.jp/」と表記するのが正しいのですが、「/」がないとまず、「****.jp/page/10」というファイルを探し、存在しなければ、同名のフォルダを探すというのが、httpの基本動作です。  ですから、無理に飛ばすような仕掛けは不要だと想うのですが...

a-z_A-Z
質問者

補足

コメントありがとうございます。 /があろうがなかろうが、あまり変わらないような気もします。 でも、mod_rewriteの勉強の為にお願いします。 楽天のアドレスが、最後のスラッシュを取ると、スラッシュありのページに飛びます。 どうやってるのかな?ってのが、事の始まりです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • CakePHP1.2でCSSが適用されない

    レンタルサーバーはXREAで、 PHP Version 4.4.8 + CakePHP 1.2.0.7692 RC3 + Apache 10337100 を使っています(phpinfo()にて取得)。 http://d.hatena.ne.jp/Yukkuri/20080519/1211221064 こちらのサイトを参考に接地し、CakePHPのスタート画面は出たのですが、 スタイルシートや画像が適用されてくれません。 mod_rewrite関係だと思うのですが、phpinfo()を見る限りでは mod_rewriteは読み込まれているようです。 .htaccessは以下のようになっています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /cgi/anketo/ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> 他に設定すべき項目などありましたら教えていただけないでしょうか。

    • 締切済み
    • PHP
  • SSLのリダイレクトについて

    sslのリダイレクトの作業を急いでやらないといけないのですが、sslに関しては全くの初心者なので調べながらいろいろやってみましたがどうしてもうまくいかず困っています。。 Wordpressでサイトを作成していてドメイン直下の.htaccessにリダイレクトの記述をしています。 サーバーはGMOのiCLUSTAで、sslはジオトラストです。 http://○○○.jp/ にアクセスした場合に、 https://ssl.○○○.jp/ へリダイレクトされるようにしたいです。 .htaccessの記述内容です # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://ssl.○○○.jp/$1 [R=301,L] この記述をしていますが、リダイレクトされたりされなかったりの不安定な状態です。 されないことの方が多いのでどの条件で動いているのかがわかりません。 RewriteCond %{HTTPS} on を、 RewriteCond %{HTTPS} off にするとリダイレクトされますが、処理がループされていますという表示が出てしまいます。 どのような記述をすればうまくいくのでしょうか?

  • httpsでmod_rewriteができない

    はじめまして。 Linux環境で、apacheのhttp.confにmod_rewriteを記載し、httpsとhttpを切り替えたいと思っています。 httpd.confに以下のように記述しています。 <IfModule mod_rewrite.c> RewriteEngine on  #(1)httpで/aaaa/bbbbにアクセスされたときにhttps://~に変えたい RewriteCond %{REQUEST_URI} ^/aaaa/bbbb RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R]  #(2)httpsで/cccc/ddddにアクセスされたときにhttp://~に変えたい RewriteCond %{REQUEST_URI} ^/cccc/dddd RewriteCond %{HTTPS} on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R] </IfModule> 上記(1)のhttpでのアクセス時には、mod_rewriteが効いてhttpsへ切り替えられるのですが、 上記(2)のhttpsでのアクセス時には、mod_rewriteが効いていないようでhttpへ切り替えられません。 rewriteログを見てみると、当サイトへhttpでアクセスした場合にはログが出力されますが、 httpsでアクセスした場合には出力されません。 そもそもhttpsでのアクセスの場合にhttpd.confのmod_rewriteが効いていないようです。 ですが、これに対しどこを調査すべきかが分かっていません。 SSLの設定自体は出来ていると思っていて、 https://xxxx.jpのようにアクセスするとちゃんとページが表示されます。 どの当たりに問題がありそうでしょうか? 解析のヒントを頂けたらと思います。 宜しくお願い致します。

  • .htaccessにmod_rewriteを設定して静的なURLにしたい

    .htaccessにmod_rewriteを設定して、動的なページのURLを静的なURLにしたいのですが、うまくいきません。 http://localhost/test/hoge.php/aiueo というURLで http://localhost/test/hoge.php?key=aiueo になるようにしたいのです。 検索して試しに以下のように記述したのですが、ダメでした。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/test/hoge.php/(.+) /test/hoge.php?key=$1 [L] </IfModule> また「aiueo」の部分にスラッシュを含む場合もあるのですが、その際にも対応できるようにしたいです。 ご回答の程、よろしくお願いします。

    • ベストアンサー
    • PHP
  • httpからhttpsへのリダイレクト方法

    すいません、よくわかりませんので教えて下さい。.htaccessに記述してhttpにアクセス来たものをhttpsへリダイレクトしたいです。 今の状況は下記です。 AddHandler application/x-httpd-php53 .php RewriteEngine On # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(sanetsu.com) RewriteCond %{REQUEST_URI} !^/(sanetsu.com)/ RewriteRule ^(.*)$ http://www.sanetsu.com/$1 [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(www.burikama.com) RewriteCond %{REQUEST_URI} !^/(www.burikama.com)/ RewriteRule ^(.*)$ /%{HTTP_HOST}/$1/ [L] # Main RewriteRule for multidomain. RewriteCond %{HTTP_HOST} ^(burikama.com) RewriteCond %{REQUEST_URI} !^/(burikama.com)/ RewriteRule ^(.*)$ http://www.burikama.com/$1 [L] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress すいません、上記の記述をどのように変更したらhttpsへリダイレクトさせることができますでしょうか?前任のweb担当の方と連絡が付かないので教えていただけたらありがたいです。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • cakephpで特定ファイル表示(htaccess

    CakePHPではURLを一度index.phpにリダイレクトするような作りになっていますが、Googleの検索エンジン用のsitemap.xmlファイルを公開ディレクトリに置いた場合、そのファイルだけはmod_rewriteのルールから外して、普通にブラウザで見れる状態にしたいです。 .htaccessをどのように設定すれば良いか、教えてください。 なお、CakePHPのindex.phpファイルと.htaccess、sitemap.xmlは同じディレクトリに置いてあります。 [環境]CakePHP 1.3 PHP5.3 現在は.htaccessは以下のように設定されています。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> 上記の RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] の前の行に RewriteCond %{REQUEST_FILENAME} ^sitemap.xml を入れるとこのファイル自体はブラウザから見れるようになりますが、サイトのトップページ以外を見ようとすると、「Not Found」が返ってきてしまいます。

    • ベストアンサー
    • PHP
  • mod _rewriteによる二重リダイレクト

    mod_rewriteで下記のようなことをしたいと思っています。 1.http://~/ABCDEFG.jpgにアクセスがあったら、 2.http://~/AB/CD/EFG.jpgにリダイレクトする。 3.http://~/AB/CD/EFG.jpg がなかったらhttp://~/NO.jpgにリダイレクトする。 2.まではできるのですが、3.に進みません・・・。 このようなことを実現できないでしょうか。すごく困っております・・・。 お手数ですがご教示いただけないでしょうか。 ---- 以下2.までできたmod_rewrite <DirectoryMatch ~> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ([a-z0-9A-Z][a-z0-9A-Z])([a-z0-9A-Z][a-z0-9A-Z])([a-z0-9A-Z]+\.jpg) $1/$2/$3 [L] </IfModule> </DirectoryMatch>

    • ベストアンサー
    • PHP
  • Wordpressのパーマリンク設定がうまく行かない

    不具合がお分かりになる方いらっしゃいましたら、教えてください。 朝から困り果てております。 Wordpressの設置について教えてください。 サーバーは借りています、iSLEで。 http://home.isle.ne.jp/support/index.html Windows Hosting Suiteというプランです。 ******.jp/wordpress/ へWordpressをインストールを行いました。 Wordpressのパーマリンクを下記の形で運用をしたいと考えております。 ******.jp/%category%/%postname%/ Wordpressのブログのアドレスを http://******.jp パーマリンク設定を /%category%/%postname%/ に設定して wwwrrotへ「index.php」と「.htaccess」を設置しましたが、真っ白の画面しか出てきません。初歩的なことで申し訳ありません。解決方法を教えて頂ければと思います。 下記は、index.phpと.htaccessの中身です。 ■↓index.php <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. * * @package WordPress */ /** * Tells WordPress to load the WordPress theme and output it. * * @var bool */ define('WP_USE_THEMES', true); /** Loads the WordPress Environment and Template */ require('./wordpress/wp-blog-header.php'); ?> ■↓.htaccess <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

  • Zend Frameworkの.htaccessが分からない

    ので教えてください。 .htaccess: SetEnv APPLICATION_ENV development RewriteEngine On RewriteBase /zend23/kubo/public RewriteCond %{REQUEST_FILENAME} -s [OR] #(1) RewriteCond %{REQUEST_FILENAME} -l [OR] #(2) RewriteCond %{REQUEST_FILENAME} -d #(3) RewriteRule ^.*$ - [NC,L] #(4) RewriteRule ^.*$ index.php [NC,L] #(5) において (1),(2),(3)はどういう意味でしょうか? また (4),(5)においてRewriteRuleは(5)だけだとまずいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • mod_rewriteに適用したくないファイルがある場合は?

    RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z_)]+)\.htm$ http://www.****.com/$1.php [L] ↑のようにhtaccessでphpをhtmに見せているんですが、 1.フォルダ内のphpファイルでも一部にこれを適用したくない場合はどのように書けばいいのでしょうか? 2.この.htaccessファイルがある下層のフォルダにはmod_rewriteを適用したくない場合はどのように書けばいいのでしょうか? (.htaccessの効果って下層フォルダにも効いてしまいますよね?) どちらかだけでもいいので、分かる方いらっしゃれば手助けしていただければうれしいです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • 社会人になってから友達と会えなくて孤独を感じる理由として、仕事の忙しさやシフト制の影響が挙げられます。友達との趣味や話が合うことを楽しむためには、効果的な予定の合わせ方が必要です。
  • 友達との予定を合わせるには、平日の休みや有給休暇を利用する方法があります。例えば、土日働いて平日に休みを取れるシフトの場合、ディズニーや旅行などを平日に楽しむことができます。
  • また、スマートフォンのSNSを活用することで、友達とのコミュニケーションを維持することも重要です。ストーリーやメッセージのやり取りを通じて、日常の様子や予定を共有し合い、距離を縮めることができます。
回答を見る