Прежде всего, я использую Codeigniter Framework, так что эта проблема - обходной путь, по которому CI обрабатывают URL-адреса вместе с текущими перенаправлениями, которые я настроил с помощью mod_rewrite.
Я пытаюсь получить URL-адрес, подобный этому /?gclid=somestringgoeshere
, для перенаправления на /index.php?/home/gclid/somestringgoeshere
.
Текущий .htaccess, который я установил, ниже
<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>
Я пытаюсь использовать следующий код прямо над первой настройкой условий перезаписи и правил, чтобы поймать его, прежде чем пытаться что-то еще
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.