.htaccess RewriteRule проблема - PullRequest
       0

.htaccess RewriteRule проблема

1 голос
/ 15 января 2012

Я предполагаю, что этот вопрос задавался много раз, но я не смог найти вопрос, который, возможно, дал бы мне то, что мне нужно.

Итак ... Я могу получить доступ к сценариям по следующим URL-адресам:

http://website.com/index.php/hello/world
http://website.com/hello/world

Оба идут в index.php , который анализирует ввод (привет / мир в этом примере).

это мой .htaccess :

<IfModule mod_rewrite.c>
Options +FollowSymlinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?path=$1&%{QUERY_STRING} [L]
</IfModule>

Однако.Когда к сайту обращаются так:

http://website.com/index.php/hello/world

RewriteRule выводит что-то похожее на index.php? Path = index.php / hello / world

Я хочу удалить это index.php после path = в RewriteRule

Ответы [ 3 ]

1 голос
/ 15 января 2012

Ваш .htaccess файл должен выглядеть следующим образом (обратите внимание на новое правило, которое проверяет, является ли index.php частью url):

<IfModule mod_rewrite.c>
Options +FollowSymlinks

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php/(.*)$ index.php?path=$1&%{QUERY_STRING} [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?path=$1&%{QUERY_STRING} [L]

</IfModule>
0 голосов
/ 15 января 2012

Изменение ответа из Ответ Stackoverflow для соответствия этому вопросу

.htaccess:

<IfModule mod_rewrite.c>
Options +FollowSymlinks

RewriteEngine On

# Redirect user
RewriteCond %{THE_REQUEST} ^.*index.php.*
RewriteRule ^(.*)index.php(.*)$ $1$2 [NC,R=301,L]

# Handle the query to PHP
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?path=$1&%{QUERY_STRING} [L]

</IfModule>
0 голосов
/ 15 января 2012

Попробуйте это

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...