2015-02-10 1 views
1

Если я скрою свой .php со всех страниц, я не могу войти в свой веб-сайт. Его не показывают никакой ошибки, просто отображают одну страницу входа. Поэтому я хочу знать, где и что я буду редактировать для входа .htaccess или loginpage?Если я скрою .php на .htaccess, я не могу войти в свой веб-сайт

.htaccess

RewriteEngine On 
RewriteBase/

# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^%1%2 [R=302,L,NE] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 

Моя страница Логин:

<?php $site_root = $_SERVER['DOCUMENT_ROOT']; 
if(!class_exists('MySQLDB')== true){ 
require_once($site_root ."/nav_top.php");} 
?> 
<? 
include_once("include/session.php"); 

if($session->logged_in){ 
echo "You are logedIn"; 
} 
else{ 
?> 
<form id="loginform" class="form-horizontal" role="form" action="process.php" method="POST"> 
<input id="login-username" type="text" class="form-control" name="user" value="<? echo $form->value("user"); ?>" placeholder="username"> 
<input id="login-password" type="password" class="form-control" name="pass" placeholder="password" value="<? echo $form->value("pass"); ?>"> 
<input type="submit" value="Login" class="btn btn-success"> 
</form> 
<? 
} 
?> 

ответ

0

Ваш <form...> должен иметь:

action="/process" 

вместо action="process.php", так как ваше второе правило переписывания уже добавляет .php в URI.

Вам также необходимо игнорировать POST запросов от вашего первого правила перенаправления, потому что POST данные теряются при выполнении внешнего перенаправления.

RewriteEngine On 
RewriteBase/

# To externally redirect /dir/file.php to /dir/file 
RewriteCond %{REQUEST_METHOD} !POST 
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC] 
RewriteRule^%1%2 [R=302,L,NE] 

# To internally forward /dir/file to /dir/file.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] 
RewriteRule ^(.+?)/?$ $1.php [L] 
+1

Спасибо, что так много сэр. Рад видеть вас здесь. – koc

+0

Добро пожаловать, рад, что это сработало. – anubhava

1

Если вы хотите просто скрыть .php вы можете попробовать это:

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

Нет ОП имеет более правильное правило для этого. – anubhava

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