• 締切済み

URLの正規化について

サイトのURLを「wwwなし」「index.htmlなし」の『http://thai-kosiki.net/』に統一したいと思い、 .htaccessファイルを作りサーバーのルートディレクトリにアップロードしました。 『http://thai-kosiki.net/index.html』と入力すると、自動的にURLが『http://thai-kosiki.net/』に置き換わるのですが、『http://www.thai-kosiki.net/』や『http://www.thai-kosiki.net/index.html』と入力すると「このウェブページにアクセスできません」と出てきます。 これは「wwwなし」にチャント正規化できていないと言うことなのでしょうか? .htaccessファイルの内容は以下です。 <Files ~ "^\.(htaccess|htpasswd)$"> deny from all </Files> Options -Indexes RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.thai-kosiki\.net)(:80)? [NC] RewriteRule ^(.*) http://thai-kosiki.net/$1 [R=301,L] order deny,allow Options FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://thai-kosiki.net//$1 [R=301,L] アドレスにwwwを付けても自動的に『http://thai-kosiki.net/』に置き換わるようにするにはどうしたらいいのでしょうか? どうぞよろしくお願いします。

みんなの回答

回答No.2

そのドメインにCNAMEをつける。 ドメインサーバーにて。。 CNAME http://www.thai-kosiki.net/ -> http://thai-kosiki.net/ ドメインを買ったサイトで出来るはずですよ。 http://www.thai-kosiki.net/ と、 http://thai-kosiki.net/ は、別のIPアドレスにもできるので、そもそもドメインサーバーで設定されていなければ、 実在しないアドレス=サーバーに来てないので、HTACCESSに何を書こうが、 APACHE(だと仮定して)に何を設定しようが、意味がないのです。 onamae を私は使ってますが、結構簡単なので、いじってみると わかるかもしれません。。 ファイトです!。

emi-chan3
質問者

お礼

遅くなってすみません。ありがとうございます。

  • dragon-man
  • ベストアンサー率19% (2701/13654)
回答No.1

URLの意味を誤解されているのではないでしょうか。URLはそのスペル全体が世界に一つしかないネットワークID(アドレス)としての意味を持ちます。このスペルは厳密でなければならず、1字欠けても異なっても意味をなしません。http://***とhttp://www,***はまったく別のURLです。

emi-chan3
質問者

お礼

遅くなってすみません。ありがとうございます。URLの意味をちゃんと理解できていませんでした。

関連するQ&A

  • さくらサーバーでURLの正規化ができません。

    wwwをなし、index.htmlをともに、無しにしたいのですが、うまくいきません。 以前ににも、同じような質問があったので、いろいろ試してみました。 さくらサーバーのマルチドメインでサイトを作ってます。 さくらインターネットはURLの正規化で一般的に記述する「Options +FollowSymLinks」が使えないということでこちらのサイトを参考に「.htaccess」を作成しました。 /www/のところにアップし、種類も.htaccesファイルになっているようなのですが、 wwwをつけて、検索すると、wwwがついたままで、無しで検索するとないままの表示です。 index.htmlをつけてると、そのまま、index.htmlと付いたまま表示されます。 参考サイト http://d.hatena.ne.jp/web-ma/20100301/1267415998 ▼wwwあり・なし RewriteEngine on RewriteCond %{HTTP_HOST} ^lusso-me.jp RewriteRule ^(.*)$ http://www.lusso-me.jp$1 [R=301,L] ▼index.htmlあり・なし RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.lusso-me.jp$1 [R=301,L] ほかのサイトもチェックして、いろいろやってみたのですが、エラーもでず、変化がありません。 よろしくお願いします。

  • htaccessでurlの正規化しかし・・・

    htaccessでindex html有りなしの正規化をしました。 ▼ソース # URLの正規化(index.html無し) Options FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://scinex-fw.co.jp/$1 [R=301,L] これで一安心と思いきや、問題が発生しました。 フォームにフリーのCGIを使用してるのですが、 確認ボタンを押すと「403 Forbidden」が返されてしまいます! CGIはまったくわかりませんが、 通常は確認ボタンをクリックすると「mail.cgi」か「config.cgi」 おそらく「mail.cgi」が「kakunin.html」を表示させる手はずだと思います。 htaccessの設定前まではうまくいっていたのですが、 現在はhtaccessを消さないと「403 Forbidden」が呼び出されます。 何か解決方法はございませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • CodeIgniterのURLの簡素化

    CodeIgniterでの開発を考えているのですが、URLを簡単にするための.htaccessが有効にならずに困っています。 RewriteEngine on RewriteCond $1 !^(index\.php|css|user_guide|.+\.gif$|.+\.jpg$|.+\.png$|.+\.js$) RewriteRule ^(.*)$ /CodeIgniter/index.php/$1 [L] をどこにおけばいいのか分かりません。どの階層でしょうか?

    • ベストアンサー
    • PHP
  • 301リダイレクトの例外処理

    WEBサイト全体に 拡張子がhtmとhtmlが混在していて管理がわずらわしいので、 .htaccessで下記のような設定をしました。 ドメイン直下に.htaccessを置いているので、サイト全体でこの設定が有効に なっているのですが、あるフォルダだけこれが適用されないように 設定をしたいと思います。 いろいろやってみたのですが、今ひとつ正常に動いてくれません。 どのようにすればいいのでしょうか。 -------------------------------------------------------------- Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^XXX.jp RewriteRule ^(.*)$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.htm RewriteRule ^(.*)index.htm$ http://www.XXX.jp/$1 [R=301,L] -------------------------------------------------------------- サーバーはApache/1.3.42 .htaccessファイルを置いているのは、ドメイン直下です。

  • .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>

  • .htaccessファイル設置エラーの原因

    .htaccessファイルの設置エラーの原因についてお尋ねします。 下記の内容の.htaccessを置きたいのですが、最初の4行の ErrorDocumenet だけを入れてアップロードしていたときは問題なかったのですが、 Options +FollowSymLinksを3つ足すと、 500 Internal Server Error になりホームページが表示できなくなります。 もともと他のサーバー(CPI)で使って問題なかった内容なので、文法エラー などではないと思うのですが。 原因として可能性のあるものは何でしょうか。 ------------------------------------------------- ErrorDocument 401 http://XXX.jp/error401.html ErrorDocument 404 http://XXX.jp/error404.html ErrorDocument 403 http://XXX.jp/error403.html ErrorDocument 500 http://XXX.jp/error500.html Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^XXX.jp RewriteRule ^(.*)$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ http://www.XXX.jp/$1 [R=301,L] Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.htm RewriteRule ^(.*)index.htm$ http://www.XXX.jp/$1 [R=301,L] ------------------------------------------------- Webサーバーはさくらインターネット、Apache/1.3.42 .htaccessファイルを置いているのは、ドメイン直下です。

  • htaccess の rewriterule でカタカナが入っているURLを使いたい

    htaccess の rewriterule でカタカナが入っているURLを 使いたいのですが、htaccessファイルがUTF-8で保存できないため困っています。 wikiフォルダへのrewriteは動作しています。 redirect ではなく rewrite で行いたいです。 何かいい方法がありませんか? ※htaccessサンプル RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.aaa\.com) RewriteRule ^/?(.*) http://www.aaa.com/wiki/メインページ [R=301,L]

  • .htaccessでURLのwwwの有無を制御する方法

    URLをwww無しで統一したく、.htaccessでwwwを付けてアクセスした際に強制的にwww無しになるよう設定をしています。 .htaccessの内容は以下の通りです。 ------------------------------------------------------------ RewriteEngine on RewriteCond %{HTTP_HOST} ^(www\.hogehoge\.net)(:80)? RewriteRule ^(.*) ​http://hogehoge.net/$1​ [R=301,L] ------------------------------------------------------------ こちらの内容で問題無く理想の動きをしてくれているのですが、検索をして調べていると、少しの差ではありますが以下のように違う書き方をしている方もいるようで、動きも変わりません。 ------------------------------------------------------------ RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.hogehoge\.net$ RewriteRule ^(.*)$ ​http://hogehoge.net/$1​ [R=301,L] ------------------------------------------------------------ 他にも色々な書き方がありましたが、ここでは割愛しています。 厳密にはどのような書き方が正しいのでしょうか。 正しい書き方があるのであればご教示願います。 .htaccess関連の質問は色々なカテゴリに分散されており、今回“ハードウェア(サーバー)”や“Linux系OS”等と悩み、“その他(プログラミング)”のカテゴリへ質問をさせて頂きました。 より良いカテゴリがあるようでしたらご指摘願います。

  • 動的urlに最後にスラッシュを付ける方法

    動的urlの最後に無理矢理スラッシュを付けて静的にする方法を教えてください。 例 xxx/index.php?section=1 → xxx/index.php?section=1/ .htaccessに RewriteEngine On AllowEncodedSlashes On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^index.php?section=(.*)/$ index.php?section=$1 とやってもだめです。 教えてください。

    • 締切済み
    • PHP
  • 動的ページを静的URLにしたい

    静的URLにしたいと思い.htaccessを設定したのですが読み込めません。 DirectoryIndex yomi.cgi RewriteEngine on RewriteBase /○○ ←.htaccessを置いてます RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([0-9A-Za-z]+).html$ yomi.cgi?mode=$1 [L] http://….net/○○/××.htmlとアクセスしても403エラーになってしまいます。 URLが間違っているのでしょうか? 通常http://….net/○○/yomi.cgiですが、yomi.cgi無しで通りDirectoryIndex yomi.cgiを削除すると403エラーになります。 色々と調べましたが解決出来ません。 すみませんが教えて下さい。 使用サーバー:さくらサーバー Apache1.3.39

専門家に質問してみよう