Я разрабатываю работу php-фрейма, и я новичок в правилах .htaccess. Поэтому мне нужно перенаправить URL-адрес, используя .htaccess. Url –
http://localhost/rinocabs/index.php?/Galary/Image/
должны быть преобразованы в это
http://localhost/rinocabs/Galary/Image/
В файле .htaccess я включаю эти правила
Options +FollowSymlinks RewriteEngine on rewritecond %{http_host} ^localhost/rinocabs/index.php?/Galary/Image/ [nc] rewriterule ^(.*)$ http://localhost/rinocabs/Galary/Image/$1 [r=301,nc]
но он не работает. Пожалуйста помоги.
Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?$1 [L,QSA] RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s(.*)/index\.php [NC] RewriteRule ^ %1 [R=301,L]
использовать это
локальный / rinocabs / index.php / Galary / Image /
вместо
локальный / rinocabs / index.php? / Galary / Image /
Когда вы сомневаетесь, отправляйтесь по маршруту Codeigniter!
RewriteEngine on RewriteCond $1 !^(index\.php|images|robots\.txt) RewriteRule ^(.*)$ /index.php/$1 [L]
В принципе, нет причин включать то, что будет частью домена вашего URL в правиле и состоянии перезаписи, и ваше состояние выглядит фанки. Рассматривая приведенный выше пример codeigniter, все, что нам нужно сделать в нашем выражении: найти сегмент index.php в пути и избавиться от него, и переписать его, чтобы включить его. Ваше выражение предполагает, что путь всегда будет одним и тем же … если это имеет смысл.
Пожалуйста, попробуйте код ниже:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
Пожалуйста, попробуйте следующий код. Он работает правильно.
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]