• 締切済み

.htaccessの書き方がわかりません。

SEO対策の為、URLの統一をしたいです。 .htaccessで対応しようとしていますが、 一部書き方がわかりません。 ECの商品ページなのですが、 下記のように/を一番後ろにいれてもいれなくても 同じページが表示されるのでうしろにスラッシュを 入れる設定にしたいです。 ただ、その設定を行いたいのはitem階層のみなので その指定もいれないといけないのですが。。 http://www.example.com/item/abcabc http://www.example.com/item/abcabc/ ↓↓↓統一後↓↓ http://www.example.com/item/abcabc/

  • CGI
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

.htaccessだけでは出来ないと思います。 WEBサーバ自体の設定になってくると思いますよ。

  • ralf124c
  • ベストアンサー率52% (232/446)
回答No.1

昔のことなので自信が無かったためようすみしてたんですが URLケツの「/」表示ってブラウザの設定に依存するんじゃなかったでしょうか サーバ側でどうにもできなかった記憶がうっすらとあります 間違ってたらすいません

関連するQ&A

  • .htaccessのリダイレクトについて

    .htaccessで以下のようにURLをリダイレクトさせたいのですが、調べてもなかなかこのようなサンプルがなく、悩んでいます。 以下のようなURLにアクセスした場合 example.com/public example.com/public/ example.com/public/pageA example.com/public/pageB example.com/public/pageB/pageC 以下のように、publicを削除したURLにリダイレクトしたいです。 example.com example.com/ example.com/pageA example.com/pageB example.com/pageB/pageC 上記の設定は.htaccessのRewriteRuleの設定で可能でしょうか? どなたか詳しい方がいたら教えていただきたいです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • .htaccessでのRewriteRuleが下層ディレクトリに効かない

    現在一番上の階層にドメインを適用しており、そこでwww有りと無しを統一する為、.htaccessに以下のように記述しています。 RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.example\.com)(:80)? RewriteRule ^(.*) http://example.com/$1 [R=301,L] これで、http://www.example.com/ は http://example.com へ、 下層ディレクトリの http://www.example.com/sample/ は http://example.com/sample/ と、 上記のようにリダイレクトしてくれますが、下層ディレクトリの中に掲示板スクリプトを設置しているものがありまして、 そのディレクトリ(/bbs)の中にも、スクリプトのURL書き換えの為のRewriteRuleを記述した.htaccessを設置しています。 ※このディレクトリ(/bbs)のRewriteRuleには、RewriteCond %{HTTP_HOST} は記述していません。 ここで困った事に、http://www.example.com/bbs/ にアクセスすると、そのままwwwが付いたURLがそのままアドレスバーに表示され、 www無し(http://example.com/bbs/)にリダイレクトしてくれません。 .htaccessを設置していない(RewriteRuleを記述していない)下層ディレクトリは、上層ディレクトリに記述しているRewriteRuleの継承をしてくれる為、http://example.com/sample/ のように表示(リダイレクト)されますが、上記の/bbs ディレクトリなどに対しても、上層のRewriteRule を引き継げる方法は無いでしょうか? 色々調べて、RewriteOptions inherit というのも見つけたのですが、/bbs ディレクトリの.htaccessに記述しても、 トップページ(http://example.com/)へリダイレクトされてしまい、どうすれば良いか悩んでおります。 環境は共用レンタルサーバで、 Apacheのバージョンは1.3.39 (Unix)。 httpd.confは自分では設定する事が出来ません。 上層ディレクトリのRewriteRuleを引き継げない場合、/bbs ディレクトリの.htaccessにはどのように記述すれば www無し(http://example.com/bbs/)になるのかでも勿論構いません。 もし良い方法がありましたらご教示頂けますと幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • CGI
  • .htaccess 301リダイレクト

    無知な者で解決できずにおります。 ※カテゴリを変更させて頂きました。 宜しくお願い致します。 現在運営しているホームページ(例>http://example.com)のURL正規化(index.html有り無し)を.htaccessにて行おうと下記のように記述したファイルを設置しました。 Options FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com ⇒※wwwはなしに統一 RewriteRule (.*) http://example.com/$1 [R=301,L] ⇒※wwwはなしに統一 RewriteCond %{THE_REQUEST} ^.*/index.html    ⇒※index..htmlはなしに統一 RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L] ⇒※index..htmlはなしに統一 設置後の解析では一応WWWもindex.htmlも「なしに統一」となっているようなのですが、1つ問題が発生した為、現在はhtaccessファイル内のindex.htmlに関する部分を削除しております。 その問題とは、 http://example.com/index.htmlに「iframe」で記述している営業日カレンダーが表示されなくなってしまうという問題です。 ※表示されない・・・サーバー側が表示する「not foundエラー」がフレーム内に表示さているように見受けられます。 実際に記述しているタグは <iframe src="http://example.com/calendar/calendar.cgi?mode=show" id="calendar" frameborder="0" scrolling="no"></iframe> というものです。 何方かお知恵をお貸しくだされば幸いです。 宜しくお願い致します。

  • URLの正規化について(MT利用)

    はじめまして。 URLの正規化について、悩んでおります。 わかる方がいらっしゃれば、ご指導願います。 【環境】 ドメインは、さくらで取得。 レンタルサーバーは、さくらのスタンダード。 CMSを使っており、MovableType4.25。 FTPにて管理。 取得したドメインのサブドメインを使って、ブログを制作。 【仮定】 取得ドメイン:example.com サブドメイン:〇〇〇 【悩み・現状】 制作して半年ぐらいになり、それなりに集客も出来るようになってきたのですが、最近気付いたことがあります。 それは、重複のURLが非常に多いということ・・・。 異なるURLだけど、同じ内容のものが4つも存在している現状です。  http://〇〇〇.example.com/  http://example.com/〇〇〇/  http://www.example.com/〇〇〇/  http://example.sakura.ne.jp/〇〇〇/ 上記4つのURLが同じ内容になっています・・・。 もしかしたら、見つけられていないだけで、他にもあるかも。 インターネットを色々調べていると、わかったこともあります。 <link rel="canonical" href="http://〇〇〇.example.com/">をhead内に入れる。  ⇒しかし、これは全ページに入れる必要があるかどうかが不明。   http://〇〇〇.example.com/△△△/というページを作成した時、このページにも<link rel="canonical" href="http://〇〇〇.example.com/△△△/">を入れなければならないとなると、とんでもない手間になるのではないか。 htaccessでリダイレクト? 仕組みはわかるのですが、どこにどのように入れればいいのかが不明。 【理想・質問】 http://〇〇〇.example.com/ の1つのみにしたい。 それが可能かどうか。 可能であれば、そのやり方。 不可能であれば、SEO上、最も有効な手段は何か。 また、この4つも重複URLがあるのって異常ですよね? 長文になりましたが、何卒、宜しくお願いします。 ※FTPのフォルダを見ると、 /home/example/www/ ↑この階層の下に、 mt/・・・ △△△/・・・ .htaccess index.html というフォルダを置いています。 置き方がまずいのでしょうか・・・。

  • .htaccessの有効範囲について

    .htaccessの有効範囲について .htaccessの有効範囲について疑問があります。設置されたディレクトリと、そのディレクトリ以下の全てのディレクトリに対して有効であるとの認識です。 http://example.com/.htaccess これは、 (1)http://example.com/にアクセスしてサーバーの設定によりhttp://example.com/index.htmlが表示された場合 (2)http://example.com/index.htmlに直接アクセスした場合 (3)http://example.com/abc/xyz.htmlにアクセスした場合 この3つ全てに適用されますよね? 私はそうだと思っていたのですが、実際は(1)の場合しか効果を発揮していません。 ということは、最後が/で終わるアドレスにしか有効ではないのでしょうか? そう言われると、「設置された"ディレクトリ"と、そのディレクトリ以下全ての"ディレクトリ"に対して有効」という文言もそういうことかというように読めるのですが、腑に落ちません。 もちろん私の.htaccessの書き方に問題がある可能性もありますが、その可能性を除いた場合、効果範囲はどうなるものなのでしょうか。 ご回答宜しくお願いいたします。 ちなみに、.htaccessの内容はユーザーエージェントを用いた携帯からのアクセスのリダイレクトです。 先日この件で質問をさせていただきまして、更に調べたところ上記のように効果範囲が限定されていることに気付きました。

    • ベストアンサー
    • HTML
  • htaccessで静的→動的処理、動的→静的301

    例えば・・・ 以下の処理(【1】と【2】)を.htaccess内で処理したいです。 【1】 http://example.com/1.html ↓ http://example.com/kkk.cgi?mode=main&cno=1 ------------------ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([0-9]+)\.html$ kkk.cgi?mode=main&cno=$1 [L] ------------------ 上記で変換は出来るのですが、これだと静的URLと動的URLで「同じコンテンツが表示(重複ページ扱い=コピーページ扱い)」されます。 やりたいことは、CGIにアクセスすると「301リダイレクトで静的ページを表示する」という仕様にしたいと考えております。尚、パラメータ無しの直接アクセス(kkk.cgi)は、同フォルダのindex.htmlに301リダイレクトできれば最高です。 【2】 http://example.com/kkk.cgi?mode=main&cno=1 ↓301リダイレクト http://example.com/1.html ------------------ RewriteCond %{QUERY_STRING} ^mode=main&cno=(\d+)$ RewriteRule ^kkk\.cgi$ %1\.html? [R=301,L] ------------------ しかし【1】と【2】の処理を同時に行うとループとなります。phpなどを一切使わず、.htaccessの記述だけでこの問題をクリアできる方、何卒ご指導お願いいたします。

  • .htaccessについて

    現在携帯サイトとPCサイトを作っています。 独ドメでhttp://www.***.com/というものを使用しており、携帯サイトではhttp://www.***.com/mobile/としておりました。 最近サブドメでhttp://m.***.com/というものをつくったのですが、 検索サイトにはhttp://www.***.com/mobile/で登録しています。 ここで.htaccessを使ってhttp://www.***.com/mobile/からhttp://m.***.com/にリダイレクトはできますでしょうか? 一応ネットで調べながら記述をして、/mobile/のディレクトリを同じ階層に置き、携帯からアクセスしたのですが、http://www.***.com/mobile/(作成した携帯サイトの表示)もしくはhttp://www.***.com/mobile/のURLなのに作成したPCサイトの表示になってしまいます。 http://m.***.com/に統一(表示されるURLも)したいので、記述方法をお願いします。 また、http://m.***.com/のディレクトリは/mobile/にしています。 宜しくお願いします。

  • .htaccessでURLの一部を書き換えるには?

    .htaccessでURLの一部を書き換える(抜き取る)方法について、質問致します。 例えば http://example.com/user/ランダムな文字列のディレクトリ/ のような構成になっているものを http://example.com/ランダムな文字列のディレクトリ/ でアクセス出来るようにしたいのですが、調べても書き換えまくっても、どうしても上手く行きません。 解決策そのものだけじゃなく、ヒントや調べ方でも良いので、是非ご教授ください! 現在は下記のように書いています。 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.+)/?$ user/$1/ [L] ただ、これだと http://example.com/ランダムな文字列のディレクトリ/ にアクセスするとちゃんと動くのですが、元の http://example.com/user/ランダムな文字列のディレクトリ/ にアクセスしても動いちゃっています。 元のURLにアクセスしたら、新しいURLにリダイレクトされて、そこでは元のURLのデータが表示されて欲しいのですが。。 どなたかご教示のほど、よろしくお願い致します。

  • .htaccessによる制御 phpとssi

    某ポータルサイトを運営しておりまして サイトはxhtmlで作っています。(拡張子はhtml) そこではssiを使用していて、一番トップのディレクトリ(index.htmlがあるところ)には .htaccess ------------------------------------------------------------------------------------- Options +Includes AddType text/html html .shtml .html .htm .xhtml AddHandler server-parsed html .shtml .html .htm .xhtml ------------------------------------------------------------------------------------- を設置しております。 これで問題なくhtmlの拡張子で表示しております。 次に 新しくサイトリニューアルしようとphpを使いサイトを作っていまして、 そのページ(xhtmlで作って拡張子はhtml)が入ったフォルダをアップしまして トップより下の階層(そのリニューアルページが入ったフォルダ)に.htaccessを ------------------------------------------------------------------------------------- AddType application/x-httpd-php .php .html .xhtml .shtml ------------------------------------------------------------------------------------- と書いたものをあげました。 ところがページを見るとダウンロードになってしまい、ページを読み込むことができません。 .htaccessを削除するとページは表示されますが、phpが有効になっていません。 試しにトップの階層の ssiを有効にする.htaccessを消して phpを有効にする.htaccessだけ残すと 問題なく表示されます。 上の階層のssiを有効にする.htaccessがある限りページはダウンロードになってしまいます。 .htaccessは下の階層ほど優先されるはずが、 「優先」というだけで「上の階層のは読まない」わけではないんですよね? おそらく問題は トップの階層にある、ssiを有効にする.htaccessだと思いますが なんとか旧ページのssiを有効にしつつ、新ページのphpを有効にする両方有効にする手段はないのでしょうか? 疑問(1)phpとssiは同時に動かない? 疑問(2).htaccessで下の階層だけ読んで上の階層の.htaccessは読ませない設定はあります? 疑問(3)下の階層の.htaccess(phpを有効にするhtaccess)の方で上のssiの設定を打ち消す書き方はあります? 参考までに階層はこうなっています index.html hoge.html .htaccess(ssiを有効にする設定) new ├.htaccess(phpを有効にする設定) ├salon1 |  ├index.html(問題のページ1) |  ├imgフォルダ |     ├aaa.jpg ├salon2 |  ├index.html(問題のページ2) |  ├imgフォルダ |     ├aaa.jpg ・ ・ ・ ちなみに問題のページのディレクトリに直接htaccessを置いてもダメでした。 お願いします

    • ベストアンサー
    • PHP
  • htaccessでのクエリ付URLのリダイレクト

    .htaccessにて、Perlで作成されたスクリプトのURLを以下のようにmod_rewriteで変換を行っています。 RewriteEngine on RewriteBase /cgi/ RewriteRule ^([0-z]+)/([0-z]+)\.html$ index.cgi?mode=$1&no=$2 通常の場合、 http://example.com/cgi/index.cgi?mode=pv&no=1 といったURLが、mod_rewriteにて http://example.com/cgi/pv/1.html というURL形式でアクセスが可能です。 そこでやりたい事なのですが、上記のpvの箇所をpastという風に変更したいと思っています。 http://example.com/cgi/pv/1.html http://example.com/cgi/past/1.html スクリプト側の問題かも知れませんが、過去ログに移行したデータなどはpastになるのですが、何故かpv(現行ログ)でもアクセス出来てしまいまして、出来れば.htaccessでpastに統一したいと思っています。 そこで単純ながら、Redirect permanentを使い、 Redirect permanent /cgi/view/ http://example.com/cgi/past/ としたところ、リダイレクトはされるのですが、 http://example.com/cgi/past/1.html?mode=view&no=1 となってしまいます。 語尾のクエリ部分「?mode=view&no=1」が出ないようにしたいのですが、どのような方法があるか、ご教示頂けますと幸いです。 RewriteCond %{QUERY_STRING}なども調べて見たのですが、詳しくどう記述すれば良いかわかりませんでした。 よろしくお願いいたします。

    • ベストアンサー
    • CGI

専門家に質問してみよう