2014-01-16 3 views
0

То, что я пытаюсь сделать это просто:Как исправить .htaccess проблемы

Я хочу удалить .php расширение из файла, для которого я использую следующий код и он работает

#for hiding.php extension 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule ^(.*)$ $1\.php 
############################-------- END ---------######################## 

Рекомендуем также Я хочу показать параметр $ _GET на экране, для которого ссылка должна быть связана с этим localhost/123, который представляет собой localhost/somepage.php? Para = 123 и для которого я использую следующий код, который также работает нормально

#for parameter Display 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule (.*)$ somepage.php?para=$1 
    ############################-------- END ---------######################## 

Задача: Эти коды работают нормально, если они не записаны вместе в одном файле `.htaccess`. Но когда они написаны вместе, и когда мне нужно получить доступ к странице входа с помощью localhost/login. .htaccess обрабатывать логин как значение параметра get. Любое решение этой проблемы?

+0

Попробуйте добавить [L] за каждый RewriteRule, [L] означает остановки, если вы найдете матч – Notflip

+0

Можете ли вы дать мне пример .. –

ответ

0

Попробуйте этот код:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule ^(.+)$ /$1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+)$ somepage.php?para=$1 [L,QSA] 
+0

Нет ... Не идет хорошо. –

+0

За какой URL он не работает? – anubhava

+0

Когда я использовал localhost/login, он отображает 'login' на экране вместо перенаправления на страницу login.php .. –

Смежные вопросы