У меня есть PHP-скрипт с именем index.php внутри папки с именем blog. Существует три разных мнения.Apache Mod-Rewrite Вопрос
- http://www.myDomain.com/blog/index.php
- http://www.myDomain.com/blog/index.php?tags=list категорий
- http://www.myDomain.com/blog/index.php?post=name столба
Я хотел бы изменить представление на основе URL.
- /блог перенаправляет на номер 1 выше
- /блог/имя-категории перенаправляет Numbe 2 выше
- /блог/имя-категории/имя-должность перенаправляет на номер 3 выше.
Сейчас у меня есть следующие правила mod_rewrite.
RewriteRule ^blog$ blog/index.php [L]
RewriteRule ^blog/(.+)/(.+)$ blog/index.php?post=$2 [L]
RewriteRule ^blog/(.+)$ blog/index.php?tags=$1 [L]
Это не работает, и я не уверен, почему. Сейчас это всегда перенаправляет к последнему URL:
blog/index.php?tags=$1
И данные GET содержит "index.php".
Кроме того, если добавить косую черту к заключительному правилу, как так:
RewriteRule ^blog/(.+)/$ blog/index.php?tags=$1 [L]
Все переадресовывает работать нормально. Проблема в том, что мне нужно , чтобы иметь косую черту в конце URL-адреса, если мне нужен вид категории.
Любые идеи, что здесь происходит? как я могу это исправить?
Спасибо за ответы. Я понял, что моя проблема была побочным эффектом наличия моих скриптов внутри папки с именем «блог». Вот как выглядел index.php:
<?php
define ('BASE_PATH', "../blog/");
include_once(BASE_PATH . 'controller/Controller.php');
$controller = new Controller();
$controller->invoke();
Уточнить проблему? Поскольку базовый путь моего сценария был «blog», mod_rewrite переписывал все мои ссылки внутри программы. Переименовав мою папку сценариев в blogScript, она устранила проблему.
Это для ответа, я буду помнить об этом. char – user182666