私は人生の最後の 10 時間をこれに費やすだけで、ぐるぐる回っている状態なので、誰かが助けてくれるのではないかと期待しています。
特定の URL を次のようにロードします。
このような形式の URL がヒットした場合、次のように書き換えてサーバーにヒットするようにします。
http://example.com/generate.php?f=2011/image.png&attribute=small
上記を踏まえて、私の質問は2つあります。
- 上記の要件を満たすために htaccess 内の URL を書き換えるにはどうすればよいでしょうか?
- 元の URL に属性クエリ文字列パラメータがない場合、htaccess 経由でサーバーにアクセスしたときに属性が false/空白などになることをどのように保証できますか?
答え1
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^f/(.*)$ generate.php?f=$1 [L,QSA]
これら 2 つはRewriteCond
省略可能です。詳細情報:
答え2
RewriteEngine On
RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]
答え3
うまくいく可能性がより高いものは次のとおりです。
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^([a-z]+)/([0-9]+)/image\.png$ /generate.php?f=$1 [QSA,L]
うまくいくかどうか教えてください