Nano Hash - криптовалюты, майнинг, программирование

Как удалить index.php из тонкого URL-адреса фреймворка

я пытаюсь удалить index.php из URL-адреса:

это работает

http://server/bw/index.php/test

это не работает

http://server/bw/test

я пытаюсь изменить .htaccess и смотрю в Интернете, я вижу, что это должно быть так:

RewriteEngine On
RewriteBase /bw/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

я пытаюсь отредактировать его таким образом:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

или таким образом:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /bw/index.php [QSA,L]

или таким образом:

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

Но когда я пытаюсь получить доступ к http://server/bw/test, он говорит мне:

Not Found

The requested URL /bw/test was not found on this server.

Apache/2.2.15 (CentOS) Server at server Port 80

Я проверяю, что внутри моего httpd.conf LoadModule rewrite_module modules/mod_rewrite.so включено.. я не знаю, что теперь делать..

как я могу решить? пожалуйста, помогите мне!


Ответы:


1

Попробуйте это, которое использовало, например. в WordPress

RewriteRule . index.php [L]

или это, которое используется, например. PHP-фреймворк Lavavel

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

Вы также можете рассмотреть возможность добавления

RewriteCond %{REQUEST_FILENAME} !-d

перед RewriteRule, чтобы также исключить существующие каталоги, а не только существующие файлы. Но это зависит от вас.

08.01.2013
  • делать нечего.. не работает.. как с первым, так и со вторым правилом 09.01.2013
  • Если вы поместите эти строки в файл .htaccess, вы должны проверить, установлена ​​ли у вас директива AllowOverride на All или FileInfo в вашем httpd.conf или конфигурации VirtualHost, потому что mod_rewrite нуждается в этом (см. документация Apache) 09.01.2013
  • я попытался установить AllowOverride для всех внутри httpd.conf, но когда я пытаюсь перейти по URL-адресу без index.php, он загружает index.php каталога, который находится над каталогом, содержащим index.php тонкой структуры 09.01.2013
  • кстати. если вы добавите !-d RewriteCond, вы должны поместить его между RewriteCond !-f и RewriteRule, потому что они применяются только к RewriteRule сразу после этого. 09.01.2013
  • тогда, возможно, у вас есть другой файл .htaccess где-то вверху дерева каталогов, скорее всего, в самом родительском каталоге. 09.01.2013
  • с этим .htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] и с параметром AllowOverride, установленным на All, он загружает родительский index.php. В родительском каталоге нет .htaccess 09.01.2013
  • хорошо .. это работает :D я только что отредактировал AllowOverride на All из другой части httpd.conf. Раньше я ошибался, потому что редактировал AllowOverride каталога / :) 09.01.2013

  • 2

    В моем случае я обновил AllowOverride All , затем запустил sudo a2enmod rewrite, чтобы избежать внутренней ошибки 500, затем перезапустил Apache service apache2 restart

    14.07.2015

    3

    Для меня у меня есть вещи, чтобы работать, используя эту строку из ответа Дехалиона:

    RewriteRule . index.php [L]
    

    Таким образом, файл index.php (или любой файл xyz.php) не отображается в URL-адресе запроса.

    http://localhost/demo1/mycompany/hello/Jim
    

    Со следующими оговорками:

    1. Вы определили этот маршрут:

      $app->get('/mycompany/hello/:name', doHello );

    2. Корневой элемент (для маршрута /mycompany/..) является также именем файла.
      То есть маршрут существует в файле с именем "mycompany .php"

    Да, это немного хак... но поскольку я нахожу конфигурацию apache запутанной/пугающей :) ... я полагаю, что это решение достаточно стабильно, чтобы удовлетворить требования.

    04.08.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..