.htaccess file not working as expected [closed]

I'am creating a basic routing system wirth php. I've created already an .htaccess file with the following code:

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

I thought it was a problem of apache2. I have already changed the file apache2.conf

with:


    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted

Nothing is changing.

I've also tried to write this code in 000-defaul.conf:


       Options Indexes FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
    

when I try to change page in navbar, is not working, because it's not going to the index.php page.

Any suggestions?

I have noticed that the path / refer to var/www/html, not to the path of my single app.

If I try to redirect to about.php then the url become this: http://localhost/pages/about.phpMostreApp/

Now I see that the file has been red but the is doing is job. Only index file is working. When I go to about or to contact, is not going to indeex page, insread it is searching for pages like about or contact that do not exists.

My php code:

include 'templates/head.php';


$request = $_SERVER['REQUEST_URI'];

if(strpos($request, '/mostreApp') !== false){

    $request = str_replace('/mostreApp', "", $request);

}

switch ($request) {
    
    case '/':
        require __DIR__ . '/pages/home.php';
        break;

    case '':
        require __DIR__ . '/pages/home.php';
        break;

    case '/about':
        require __DIR__ . '/pages/about.php';
        break;

    case '/contacts':
        require __DIR__ . '/pages/contacts.php';
        break;

    case '/registrati':
        require __DIR__ . '/pages/registrati.php';
        break;

    case '/accedi':
        require __DIR__ . '/pages/accedi.php';
        break;

    default:
        http_response_code(404);
        require __DIR__ . '/pages/404.php';
        break;
}
0
задан 13 August 2020 в 18:22

1 ответ

процесс увеличения размера раздела подкачки и использования его для гибернации

  1. Создание раздела подкачки

    Активация раздела подкачки

    Создание нового раздела подкачки для работы в спящем режиме (необязательно)

    Создание раздела подкачки Загрузитесь с установочного компакт-диска Ubuntu и выберите возможность запустить Ubuntu сейчас. Перейдите в раздел «Система» -> Редактор разделов GParted

Удалите раздел подкачки и, если в нем больше ничего нет, расширенный раздел, в котором он находится. (Если каким-то чудом вы сможете изменить размер раздела подкачки отсюда, я полагаю, ваша жизнь будет намного проще, чем моя.) Уменьшите размер вашего основного раздела на величину, которую вы хотите, чтобы ваш новый своп был (я сделал свой 2x RAM + 500MB на всякий случай). Самый простой способ сделать это - заполнить пространство, которое вы хотите, чтобы своп был в поле «свободное пространство после». В свободном пространстве, которое теперь было создано, выберите новый, введите linux-swap и вы можете назвать раздел «swap», если хотите. Нажмите кнопку Применить (должна быть галочка), чтобы записать изменения на диск. Когда закончите, перезагрузитесь обратно в Ubuntu. Активация раздела подкачки (Если ваш своп находится на вашем основном жестком диске, вам не нужно здесь ничего делать.) Теперь вам нужно найти, в каком разделе находится ваш своп и каков его UUID. UUID ?! ты говоришь? Что ж, это универсальный уникальный идентификатор для раздела, так что вы можете ссылаться на него, даже если он находится в другой точке монтирования от загрузки к загрузке из-за добавления дисков и т. Д.

Откройте терминал и запустите gksu gparted & и введите свой пароль root. & Позволяет этому процессу работать, но при этом дает вам доступ к командной строке.

Щелкните правой кнопкой мыши раздел подкачки и выберите Информация . Вы должны увидеть Путь и UUID , перечисленные там. Оставьте это открытым для дальнейшего использования. Запустите gksu gedit / etc / fstab & и найдите строку, в которой есть swap . Это должен быть третий столбец, разделенный пробелами или табуляцией. Вы можете использовать путь или UUID, чтобы сообщить Linux, где найти свой раздел подкачки. Я рекомендую UUID, потому что он останется постоянным, даже если вы переместите раздел, или диск каким-то образом станет sdb вместо sda или что-то в этом роде. Внесите соответствующие изменения и сохраните файл. Ваша строка должна выглядеть примерно так, если вы использовали UUID (конечно, с вашим UUID):

UUID = 41e86209-3802-424b-9a9d-d7683142dab7 none swap sw 0 0

или это, если вы использовали path: / dev / sda2 none swap sw 0 0

Сохраните файл. Включите новый раздел подкачки с помощью этой команды.

sudo swapon --all

ИЛИ

$ sudo swapon --all --verbose

swapon on /dev/sda2
swapon: /dev/sda2: found swap signature: version 1, page-size 4, same byte order
swapon: /dev/sda2: pagesize=4096, swapsize=2147483648, devsize=2147483648
Confirm that the swap partition exists.

$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       2097148 0       -1

Перезагрузитесь, чтобы убедиться, что новый раздел подкачки правильно активируется при запуске Заставить раздел подкачки работать для гибернации (необязательно) «ИНФОРМАЦИЯ: это не будет работать в 12.04, выход из спящего режима будет работать иначе в 12.04.»

Снова откройте терминал и запустите cat / proc / swaps, и, надеюсь, вы увидите путь к вашему разделу подкачки, указанному там. Если нет, скорее всего, что-то пошло не так в приведенных выше шагах. Вот мой результат:

Тип имени файла, размер используемого приоритета / dev / sda2 раздел 2676732 73380-1 gksu gedit / etc / default / grub & для загрузки конфигурации загрузчика

Найдите строку GRUB_CMDLINE_LINUX = "" и убедитесь, что она выглядит так (конечно, с использованием вашего UUID) GRUB_CMDLINE_LINUX = "resume = UUID = 41e86209- 3802-424b-9a9d-d7683142dab7 "и сохраните файл

sudo update-grub и дождитесь его завершения

gksu gedit /etc/initramfs-tools/conf.d/resume & и убедитесь, что он содержимое - resume = UUID = 41e86209-3802-424b-9a9d-d7683142dab7 (конечно, с вашим UUID вместо моего). Сохраните файл!

sudo update-initramfs -u

Перезагрузитесь! Теперь вы можете перейти в спящий режим и продолжить работу!

htaccess также находится в каталоге / AppMostre , тогда вам нужно удалить директиву RewriteBase / , иначе он направит запрос на /index.php в корне документа, а не /AppMostre/index.php . Что предположительно приведет к ошибке 404.

Однако, если ваш файл .htaccess находится в корне документа (родительский каталог / AppMostre ), вам нужно будет изменить Директива RewriteBase / , чтобы читать:

RewriteBase /AppMostre

Или измените строку RewriteRule susbstitution на AppMostre / index.php .

В противном случае, опять же, он попытается направить запрос на /index.php в корне документа, а не на /AppMostre/index.php .

ОБНОВЛЕНИЕ:

Если я попробую перенаправить на о. php, тогда URL-адрес станет следующим: http: //localhost/pages/about.phpMostreApp/

Откуда MostreApp ? Ранее вы использовали AppMostre ?

И вы ссылаетесь на mostreApp в своем скрипте? Имейте в виду, что здесь учитывается регистр.

0
ответ дан 21 August 2020 в 08:00

Другие вопросы по тегам:

Похожие вопросы: