.htaccess — возможно ли, что ci url не будет работать с index.Stack Overflow

Возможно ли, что ci url не будет работать с index.php. Я не хочу добавлять index.php в url. Если кто-то добавляет index.php в URL, он не должен работать. Я пробовал много способов. Пожалуйста, дайте мне предложение.
Я пытался, но это не работает

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

например,

если я использую ниже URL Это должно работать …………..

`example.com/abc`

если я использую ниже URL не должен работать

`example.com/index.php/abc`

6

Решение

Добавьте ниже код в верхней части index.php. Я думаю, что это решит вашу проблему.

if(strpos($_SERVER['REQUEST_URI'],'index.php') !== false){
header('location: http://xyx.com/404');
die();
}
1

Другие решения

Создайте файл .htaccess в корневом каталоге и сохраните в нем этот код

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Откройте приложение / config / config.php

    //find the below code
$config['index_page'] = "index.php"//replace with the below code
$config['index_page'] = ""
/find the below code
$config['uri_protocol'] = "AUTO"//replace with the below code
$config['uri_protocol'] = "REQUEST_URI"
3

В Config.php

$config['base_url'] = 'http://localhost/website/';
$config['index_page'] = '';

# If Live site
# $config['base_url'] = 'http://stackoverflow.com/';

В .htaccess

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

Проверьте мой ответ на другой вопрос Настройте базовый URL в codeigniter

3

Ты можешь использовать:

RewriteEngine On

# 403 Forbidden for index.php
RewriteCond %{THE_REQUEST} index\.php [NC]
RewriteRule ^ - [F]

# Rewrite to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
2

Попробуйте следующий код, чем ..

измените следующее в config.php

$config['index_page'] = ""$config['uri_protocol'] = "REQUEST_URI"

Теперь откройте файл .htaccess и замените его следующим кодом.

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

если указанная выше строка не работает, замените строку новым кодом. Потому что .htaccess зависит от сервера

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
1

Попробуйте с приведенным ниже правилом,

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,END]

RewriteRule ^index\.php* - [F]
0

Что именно вы имеете в виду, говоря url shouldn't work он должен перенаправить на другой или заменить?

url shouldn't work — я думаю, что вы должны сказать пользователю (сканеру), что в этой ссылке есть ошибка, если ссылка уже проиндексирована, сообщите сканеру, что это 404 not found страница, и он прекратит индексирование этих страниц. Вы не можете отключить index.php/foo полностью, потому что все запросы проходят index.php (Я полагаю, если вы используете маршрутизацию)

Вот пример замены — https://htaccess.madewithlove.be?share=04dcf45c-32e9-5c29-b706-5869cd369ffd

Введите URL http://ex.com/index.php/abc

RewriteEngine On
RewriteRule index.php/(.*) /404 [L] #send user to not found page
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [L]

Выходной URL http://ex.com/404

0

Просто измените ваш корневой файл .htaccess:

RewriteEngine on
RewriteBase /projectname
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

Изменить в конфигурационном файле:

$config['index_page'] = '';

$config['uri_protocol'] = 'REQUEST_URI';
0
По вопросам рекламы [email protected]