これが lighttpd の mod_rewrite ルールです。
url.rewrite-once = (
"^/label/([-'\./\+a-z0-9A-Z]+)/$" => "/index.php?page=label&label=$1",
"^/riddim/([-'\./\+a-z0-9A-Z]+)/$" => "/index.php?page=riddim&riddim=$1",
"^/([a-z]+)$" => "/index.php?page=$1",
"^/(!?pma)([a-z]+)/?$" => "/index.php?page=$1"
)
問題は、文字 ' (39 .d) が何らかの理由でリンクを壊し、404 エラーが発生することです。
/riddim/Some+Thing+Here+9.38/ --> works, page is shown
/riddim/Someone's+Stuff+Here/ --> fails, page not found 404 error
私はすでに "^/riddim/(.+)/$" を使ってみましたが、うまくいきました。特殊文字として ' を使用する正規表現エンジンについて聞いたことがありませんが、(\' を使用して) char をエスケープしようとしましたが、それも失敗しました。
lighttpd は Web サーバー上で実行されており、私のコンピューターでは XAMPP と apache を使用しています。そこで同じ正規表現/ルールを設定すると、問題なく動作します。
RewriteEngine on
RewriteRule ^/label/([-'\./\+a-z0-9A-Z]+)/$ /index.php?page=label&label=$1
RewriteRule ^/riddim/([-'\./\+a-z0-9A-Z]+)/$ /index.php?page=riddim&riddim=$1
RewriteRule ^/([a-z]+)$ /index.php?page=$1
私は何を間違っていますか?