CodeIgniter: Как полностью отключить «index.php» в URL-адресах (запретить его, если он введен вручную в URL-адресе) - PullRequest
1 голос
/ 25 июля 2010

Я использую codeigniter и могу использовать URL-адреса без «index.php», но если я вручную введу «index.php», URL-адреса все еще работают Я бы хотел отключить доступ к URL-адресам типа "index.php / controller", чтобы избежать штрафов за дублирование контента со стороны Google.

Вот как выглядит мой текущий файл .htaccess:

Options +FollowSymLinks

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
 Order Deny,Allow
 Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

Ответы [ 2 ]

1 голос
/ 25 июля 2010

Вы можете попробовать это, заменив последние 3 строки на

RewriteCond $1 !^(index\.php|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

или, возможно, просто удалив последнюю строку вашего .htaccess.

Также вам может потребоваться изменить/config/config.php в

 $config['index_page'] = “”
0 голосов
/ 26 июля 2010

Руководство CI уже дает вам (рабочий) пример того, как это сделать:

Вы можете легко удалить этот файл, используя файл .htaccess с некоторыми простымиправила.Вот пример такого файла, в котором используется «отрицательный» метод, в котором все перенаправляется, кроме указанных элементов:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

В приведенном выше примере любой HTTP-запрос, отличный от запросов для index.php,images и robots.txt обрабатываются как запрос к вашему файлу index.php.

Всегда сначала проверяйте руководство.Это действительно хорошо и дает вам простой ответ большую часть времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...