Использование .htaccess Mod_rewrite, чтобы скрыть расширение .php, работающее только для отсутствующих страниц. - PullRequest
1 голос
/ 30 января 2012

Пожалуйста, извините меня, так как я довольно новичок в использовании .htaccess, и у меня возникли некоторые проблемы с ним, так как мне нужна установка, несмотря на то, что она простая, на первый взгляд редкая.

По сути, яработая на дополнительном домене, пытаясь скрыть расширения .php от страниц, но одновременно перенаправляя запросы на несуществующие страницы на страницу пользовательского поиска.Общий желаемый эффект:

realpage => realpage.php

и

falsepage => search.php? Q = falsepage

Пока чтокод, который у меня есть (см. ниже), кажется, применяет последний правильно, но вместо возврата «realpage.php» для «domain.com/realpage» он возвращает ошибку 404.

Я нашел варианты, которыетакже переместите реальную страницу в «search.php? q = отсутствует», если это указывает на то, что может быть не так!

Мой файл .htaccess в данный момент:

   Options +FollowSymLinks
   Options +Indexes

   RewriteEngine On

   RewriteBase /

   RewriteRule ^([^\.]+)$ $1.php [L]

   RewriteCond %{SCRIPT_FILENAME} !-f
   RewriteRule ^(.*)\.php$ search.php?q=$1 [L]

Спасибо за любую помощь, которую вы можете предложить!Это очень ценится!

1 Ответ

0 голосов
/ 30 января 2012

Я думаю, что для вашего первого правила вы хотите что-то вроде:

RewriteBase /
RewriteRule ^([^.]+)$ $1.php [L]

Я запустил это через тестер правил перезаписи , и он перенаправит 'realpage' в 'realpage.php'. Если это не сработает, я бы предложил отключить ваше второе правило, убедившись, что первое работает хорошо, а затем добавить проверку на отсутствие файлов.

...