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

URL RewriteRule .htaccess для более удобной для SEO формы

У меня есть URL-адреса, такие как book.php?id=23 product.php?id=23 и т. д. Я хочу, чтобы они были чем-то вроде

book/id/title 

мой текущий .htaccess это

RewriteEngine On
RewriteRule ^book/([0-9]+)\-([a-z0-9_\-]+)/?$ book.php?id=$1 [NC,L,QSA]

но он не работает должным образом, он ведет на страницу book.php, несмотря на проблемы на странице, я не могу получить параметр Id, используя $_GET , любая помощь приветствуется, вот мой URL http://www.gamzesart.com/book.php?id=2


  • Я разместил ответ ниже. Вы видели мой ответ? 18.12.2013

Ответы:


1

На самом деле у меня была эта проблема на прошлой неделе, оказалось, что это было из-за того, что ссылка на URL-адрес была такой же, как имя файла php, который я вызывал, то есть:

RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]

Просто в качестве теста измените правило на:

RewriteRule ^books/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]

и попробуйте назвать URL-адрес как books/23 вместо этого.

18.12.2013
  • Прохладно. Любопытно то, что каждый онлайн-учебник, который я когда-либо видел, использует такие примеры, как ^product и product.php или ^category и category.php, поэтому я не знаю, почему это должно быть. Может быть, кто-то еще может пролить свет на это? 18.12.2013
  • Да, это совершенно странный вопрос. то же самое произошло и со мной. 18.12.2013
  • Я очень подозреваю, что это зависит от того, настроен ли сервер для запуска PHP без расширений или нет, но не верьте мне на слово! 18.12.2013
  • stackoverflow.com/questions/20656432 / Я открыл вопрос 18.12.2013

  • 2

    Попробуйте следующее:

    +FollowSymLinks   # This is based on the comment of PeteR bellow in comments
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
    
        RewriteRule ^book/([0-9]+)/([^/]+)/?$ book.php?id=$1 [NC,L,QSA]
    </IfModule>
    

    Это подходит для меня.

    На моем локальном ПК я пытаюсь получить доступ к URL-адресу: http://www.localSite.dch/book/12/nikos

    и в моем файле book.php у меня есть следующий код:

    <?php
        echo "<pre>";
    print_r($_REQUEST);
        echo "</pre>";
    ?>
    

    Результат таков:

    Array
    (
        [id] => 12
    )
    
    18.12.2013
  • спасибо, но не сработало, я отредактировал свой вопрос и добавил настоящую ссылку, вы можете попробовать проверить URL-адрес, если хотите, я изменил .htaccess, чтобы он был похож на ваш. нет надежды :\ 18.12.2013
  • Есть ли в вашем файле htaccess какие-либо другие правила перед этим? 18.12.2013
  • ваш mod_rewrite включен? 18.12.2013
  • Попробуйте добавить Options +FollowSymLinks в начало файла .htaccess. 18.12.2013
  • ну, я пробовал без Options +FollowSymLinks, это не сработало, это было то же самое, что и страница book.php, но без данных $_REQUEST. с опциями +FollowSymLinks я получил ошибку 500 18.12.2013
  • Новые материалы

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

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

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

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

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

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

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