Страница RewriteRule + выпуск категории - PullRequest
0 голосов
/ 23 марта 2011

У меня есть следующие URL-адреса для переписывания .htaccess, такие как url.com/category/page и url.com/page, а затем PHP для установки переменных из $ _GET.

Проблема в том, чтостраница category.php будет работать только с url.com/category, но затем, когда я захочу зайти на url.com/category/page, произойдет сбой, потому что файл category.php И папка категории должны существовать, и поскольку папка существует, она не работает... я не уверен, имеет ли это смысл, но я действительно не могу найти способ обойти это ..

.htaccess

RewriteEngine On
RewriteCond  %{REQUEST_FILENAME}  !-f
RewriteCond  %{REQUEST_FILENAME}  !-d
RewriteRule ^([^/]+)/([^/]+)$  index.php?category=$1&page=$2   [L]
RewriteCond  %{REQUEST_FILENAME}  !-f
RewriteCond  %{REQUEST_FILENAME}  !-d
RewriteRule ^([^/]+)$  index.php?page=$1    [L]

PHP

$url = '';
if (!empty($_GET['category'])) {
    $url .= $_GET['category'] . '/';
}
if (!empty($_GET['page'])) {
    $url .= $_GET['page'] . '.php';
} else {
    $url .= "pages/home.php";
}
include $url;

1 Ответ

0 голосов
/ 23 марта 2011

В вашем коде есть условие, которое будет перенаправлять браузер в папку, в которой он существует
(RewriteCond %{REQUEST_FILENAME} !-d). Если вы удалите это, оно должно работать.

Если вы хотите условно перенаправить его в папку, если она существует, вы можете настроить ее, используя операторы if в PHP.

...