Я всегда с помощью следующего:RewriteRule для нескольких имен файлов
RewriteRule ^(.*)/$ page.php?name=category&type=$1 [L]
переписать мои ссылки. Я использовал только одно имя файла «page.php», и он работал. Сегодня я хочу добавить еще один файл «project.php», и нужен еще один RewriteRule для него, и это полный код, который я пытаюсь использовать в .htaccess:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^(.*)/$ page.php?name=category&type=$1 [L]
RewriteRule ^(.*)/(.*)/(.*)/(.*)/$ project.php?category=$1&id=$4&type=$2&name=$3 [L]
Но это работает только для первого пути, а второй - второй. Пожалуйста, может кто-нибудь помочь разобраться? Я пытался найти его некоторое время, но не смог найти решение. Спасибо заранее!
Можем ли мы получить пример URL-адресов? И тот, и другой для page.php. –
Благодарим вас за ответ, Джонатан. Я не могу предоставить прямую ссылку, но когда я попытаюсь получить «категорию» со второй ссылки: project.php? Category = $ 1 & id = $ 4 & type = $ 2 & name = $ 3 (после конвертации ссылки) он дает мне все вместе, включая «id», «type» и т. д., с косой чертой; например один/два/три – dnns
Да, я вижу это. Мне не нужна реальная прямая ссылка, мне просто интересно, как выглядит эта ссылка. Проблема, которую я уже могу вам сказать, состоит в том, что '(. *)' Означает «ноль или более любого символа». Это будет включать '/'. Таким образом, все URL-адреса будут совпадать с '. *', Делая первое правило всегда истинным. После этого переписывается. Вам было бы лучше определить, какой тип символов (только числа, только буквы, и ... и т. Д.) Должны находиться в каждой группе (между скобкой) и сопоставлять именно это. –