2016-08-21 3 views
0

У меня проблема с переписанием строки запроса.htaccess строка запроса переписать в localhost

URL, у меня есть следующие:

локальный/WWW/whours.com/index.php комп = login_controller/NOAUTH

, и я хотел бы перевести его в:

локальный/WWW/whours.com/login_controller/NOAUTH

В моей Htaccess, в настоящее время, есть следующий код:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^comp=(.*)$ 
RewriteRule ^(.*)$ www/whours.com/%1? 

и в index.php:

// Getting the absolute root path 
define('ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR); 

include_once("App/Core/Config/config.php"); 
include_once(CORE_PATH . DIRECTORY_SEPARATOR . "Include/autoloader.php"); 

//echo ('location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?comp=login_controller/noAuth"); 
if (!isset($_GET['comp'])) 
{ 
    header('location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?comp=login_controller/noAuth"); 
} 
$app = new Application(); 
$app->run(); 

Когда я контактирование URL в локальном хосте кажется Htaccess не применяется, и результат страницы Ошибка 404 со следующим URL: локальный/WWW/whours. com/index.php? comp = login_controller/noAuth

Не могли бы вы дать мне предложение или помощь, чтобы найти, где находится проблема?

Большое спасибо заранее. Simone

ответ

0

Если вы хотите http://www.example.com/www/whours.com/login_controller/noAuth переписывается в http://www.example.com/www/whours.com/index.php?comp=login_controller/noAuth, вы должны иметь это наоборот

RewriteRule ^www/whours.com/(.+)$ /www/whours.com/index.php?comp=$1 [L] 

Хотя это выглядит как www/whours.com может быть корневым документом вашей веб-страницы. В этом случае URL будет скорее http://www.example.com/login_controller/noAuth и правило должно выглядеть

RewriteRule ^(.+)$ /index.php?comp=$1 [L] 

Переписать http://localhost/www/whours.com/ или http://www.whours.com в /index.php?comp=login_controller/noAuth заменить правило с

RewriteRule ^www/whours.com/?$ /index.php?comp=login_controller/noAuth [L] 

на локальном хосте. Это предполагает, что .../www/whours.com является вашим корнем вашего документа, то есть у вас есть DocumentRoot /path/to/www/whours.com где-то в ваших конфигурационных файлах Apache.

На производственном сервере (www.whours.com), используйте

RewriteRule ^$ /index.php?comp=login_controller/noAuth [L] 
+0

Спасибо Олафа. В настоящее время www/whours.com является моим документом, потому что в производстве он станет www.whours.com. Я хотел бы получить, что то, что я передаю в заголовок команды php (localhost/www/whours.com/index.php? Comp = login_controller/noAuth), будет переведено в URL-адрес (так видно пользователям и сканеры) localhost/www/whours.com/login_controller/noAuth - не наоборот, где строка запроса видна. Есть ли у вас предложения? Как изменить htaccess? – Simone

+0

Вы хотите, чтобы пользователь вводил 'http: // localhost/www/whours.com/login_controller/noAuth' в браузер? –

+0

Нет, я ожидаю, что пользователь войдет в браузер: localhost/www/whours.com/(в dev) и www.whours.com (в производстве). Перенаправление на index.php выполняется автоматически веб-сервером.Я ожидаю, что я сделал перенаправление в php на URL с строкой запроса, чтобы быть изменен на htaccess – Simone

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