0
最初に私はCodeigniter Frameworkを使用していますので、この問題は、CIプロセスのURLとmod_rewriteで設定した現在のリダイレクトの回避策です。.htaccessリダイレクトエラー
このようなURLを/?gclid=somestringgoeshere
にして、/index.php?/home/gclid/somestringgoeshere
にリダイレクトしようとしています。それはの何かをしようとする前に、私はそれをキャッチするために右の最初の設定の書き換え条件とルールの上に次のコードを使用しようとしています
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6_$7 [L]
RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5_$6 [L]
RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4_$5 [L]
RewriteRule ^([^_]+)-([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3_$4 [L]
RewriteRule ^([^_]+)-([^_]+)-([^.]+)$ index.php?/$1_$2_$3 [L]
RewriteRule ^([^_]+)-([^.]+)$ index.php?/$1_$2 [L]
# Checks to see if the user is attempting to access a valid file,
# such as an image or css document, if this isn't true it sends the
# request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# This last condition enables access to the images and css folders, and the robots.txt file
# Submitted by Michael Radlmaier (mradlmaier)
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
の下
は
私が設定した現在の.htaccessがある
RewriteRule ^?gclid=(.*)$ index.php?/home/gclid/$1 [L]
と
RewriteRule ^\?gclid=(.*)$ index.php?/home/gclid/$1 [L]
と
RewriteRule ^/?gclid=(.*)$ index.php?/home/gclid/$1 [L]
いずれも正しいページを表示していないか、500の内部エラーが発生しています。
これは?このようなURLの^?gclid =(。*)でもエラーを表示します – cointilt
URIパスは 'RewriteRule'ディレクティブでしかテストできません。 URIクエリ(最初の '? 'からそれまでの最初の'# 'までの部分)は、'%{QUERY_STRING}'変数でのみアクセスできます。それは 'RewriteCond'ディレクティブでのみ可能です。だから私の例はうまくいくはずです。 – Gumbo
あなたの例からコピーしたテキストに問題があることが判明した場合、それは奇妙な文字を挿入しました。ありがとう! – cointilt