Web サイトには次の書き換えルールがあります。
RewriteEngine On
# Stop reading config files
RewriteCond %{REQUEST_FILENAME} .*/web.config$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} .*/\.htaccess$ [NC]
RewriteRule ^(.+)$ - [F]
# Rewrite to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^(/bilder_losning/|/bilder/|/gfx/|/js/|/css/|/doc/).*
RewriteRule ^(.+)$ index.cfm?smartLinkKey=%{REQUEST_URI} [L]
ここで、最終的にクエリ文字列を含むスクリプトを上記のルールから除外する必要があります。これにより、通常の方法でスクリプトにアクセスして実行できるようになります。現時点では、URL 全体が無視され、インデックス ページに転送されます。
変数 tduid と url (shoplink.cfm?tduid=1&url=) を受け取るルートのスクリプト shoplink.cfm にアクセスする必要があります。
これを使用して解決しようとしました:
# maybe?:
RewriteRule !(^/shoplink.cfm [QSA]
しかし、正直なところ、私は urlrewriting の手がかりがあまりなく、何を書けばよいかわかりません。上記が素敵な500エラーを生成することを知っています。
私はstackoverflowや同じ件名の他のウェブサイトをよく見回してきましたが、ファイルではなくディレクトリを除外しようとしている人しかいません。最悪の場合、スクリプトを別のディレクトリに追加して、そのディレクトリをリライタ ルールから除外することもできますが、スクリプトは実際にはルートに残す必要があるため、そうではありません。
また試してみました:
RewriteRule ^/shoplink.cfm$ $0 [L]
しかし、それも何もしませんでした。
この件について私を助けてくれる人はいますか?
前もって感謝します。
Steven Esser ColdFusion プログラマー