.htaccess ファイルでの mod_rewrite の記述方式について教えてください。


YOURLSをインストールして、
TOPページは正常に表示され 元URL登録 短縮URL発行
管理画面で登録が確認できます。

発行された短縮URL「仮に http://yrs.me/1 とする」にアクセスしても
404エラー表示となります。
http://yrs.me/yourls-go.php?id=1 だと転送されるので
.htaccess の記述の問題かと考えています。

どうかよろしくお願いいたします。

-環境説明-
 
さくら スタンダードプラン
スクリプト YOURLS: Your Own URL Shortener
http://123.sakura.ne.jp/yrs/ に実ファイルを設置
http://yrs.me/ でアクセスが可能なようにマルチドメイン設定

この時 /yrs/.htaccess に下記内容を設定

# BEGIN YOURLS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9A-Za-z]+)/?$ /yourls-go.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+/?$ /yourls-infos.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+all/?$ /yourls-infos.php?id=$1&all=1 [L]
</IfModule>
# END YOURLS

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2010/05/20 00:55:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:valueshare No.2

回答回数6ベストアンサー獲得回数4

ポイント46pt

条件を少し単純にしてみてmod_rewriteがちゃんと動作しているか試してみては?

あと、リダイレクト先のファイル名先頭にスラッシュは要らないと思います。

RewriteRule ^([0-9A-Za-z]+).*$ yourls-go.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+.*$ yourls-infos.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+all.*$ yourls-infos.php?id=$1&all=1 [L]

その他の回答1件)

id:Committeeman No.1

回答回数153ベストアンサー獲得回数19

ポイント24pt
RewriteRule ^([0-9A-Za-z]+)\+all$ /yourls-infos.php?id=$1&all=1 [L]
RewriteRule ^([0-9A-Za-z]+)\+.*$ /yourls-go.php?id=$1 [L]
id:moechara

ご回答いただいた記述内容を試してみましたが

状態は変わりませんでした。

さくらインターネット独自の設定が必要なのかもしれません...

URL欄は http://yrs.me/yourls となり

ブラウザには下記のように表示されてしまいます。

Not Found

The requested URL /yourls was not found on this server.

2010/05/13 01:39:58
id:valueshare No.2

回答回数6ベストアンサー獲得回数4ここでベストアンサー

ポイント46pt

条件を少し単純にしてみてmod_rewriteがちゃんと動作しているか試してみては?

あと、リダイレクト先のファイル名先頭にスラッシュは要らないと思います。

RewriteRule ^([0-9A-Za-z]+).*$ yourls-go.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+.*$ yourls-infos.php?id=$1 [L]
RewriteRule ^([0-9A-Za-z]+)\+all.*$ yourls-infos.php?id=$1&all=1 [L]
  • id:moechara
    質問文に記載のURLは架空の物です。
    http://123.sakura.ne.jp/yrs/ 
    http://yrs.me/ 
  • id:moechara
    もっとも単純な次の文にすると

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^yrs.me/
    RewriteRule (.*) http://www.yrs.me/$1 [R=301,L]

    http://www.yrs.me// に転送されることは確認できたのですが
  • id:soso
    同じくさくらインターネットを利用していますが、特に問題なく転送されてます。

    ↓ココを見て手動で.htaccess作成しました。
    http://code.google.com/p/yourls/wiki/htaccess

    include/config.php 内で、自サイトのURLを指定しますが、
    最後にスラッシュは不要、と書かれてます。このあたりはいかがでしょう?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません