2013-07-03 2 views
0

Я разработал приложение php, которое отлично работает на локальном сервере. когда я развернуть приложение на веб-сервере ссылки не работаютссылки, не работающие на веб-сервере

1) мой сайт «abc.myapplication.com» (АВС субдомен)

я определил следующую переменную в конфигурационном файле

define('ROOT_PATH', $_SERVER['DOCUMENT_ROOT']); 

ROOT_PATH переменные показывает/дом/punjabfo/public_html/а (который идеально подходит)

для ссылки я использовал следующий код

<a href="<?php echo ROOT_PATH . "addrecord.php"; ?>">Add Record</a> 

ссылка должна идти на «abc.myapplication.com/addrecord.php», но ссылка пойти

"abc.myapplication.com/home/punjabfo/public_html/abcaddrecord.php" 

я пробовал много, но не мог плавник вопрос. пожалуйста помоги. благодаря

ответ

1

Попробуйте

define('ROOT_PATH', $_SERVER['HTTP_HOST']); 
+0

это пойти «http://abc.myapplication.com/abc.myapplication.comaddrecord.php» – user1543848

+1

просто использовали определения («ROOT_PATH», "/"); –

+1

Я не думаю, что это правильный ответ, так как он не объясняет, в чем была настоящая проблема. Более того, ваш совет состоит в том, чтобы использовать 9 символов, а не одну косую черту. HACK! – F0G

1

Просто используйте

<a href="<?php echo $_SERVER['REMOTE_ADDR'] . "addrecord.php"; ?>">Add Record</a> 
+0

это пойти в «abc.myapplication.com/IPADDRESSaddrecord.php» – user1543848

1

Вы можете попробовать -

$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
echo 'http://'.parse_url($url, PHP_URL_HOST) . '/'; 
1

Ваш вопрос "$ _SERVER [ 'DOCUMENT_ROOT']". $ _SERVER ['DOCUMENT_ROOT'] обозначает корневой каталог на сервере (dir-path). Что вам нужно, это URL-адрес, а не путь к файловой системе.

Посмотрите на

<?php 
    echo "<pre>"; 
    var_dump($_SERVER); 
    echo "</pre>"; 
?> 
2

Что с Держа It Simple

<a href="addrecord.php">Add Record</a> 

Пусть сервер сделает всю работу, так как он получает это право и вы делаете меньше возиться.

+1

Также, используя полные пути, создайте кошмар перемещения. –

+0

прост не работает, поскольку ссылки находятся в меню, и есть структура папок ... – user1543848

+1

Я хотел бы знать, почему бы и нет. Вы процитировали это на своем локальном сервере 'define ('ROOT_PATH', $ _SERVER ['DOCUMENT_ROOT']),' сгенерированный '/ home/punjabfo/public_html/addrecord.php'.Поэтому я предполагаю, что public_html - это ваш DocumentRoot. Поэтому 'Add Record' является допустимой заменой, которая должна работать на любом веб-сервере. 'PS, который не похож на структуру directoy Windows, поэтому я предполагаю, что вы не используете' WAMP Server' – RiggsFolly

1

Почему бы не сделать

<a href="/addrecord.php">Add Record</a> 

Конечно вам не нужно ROOT_PATH в URL. Что вы делаете, возвращается полный путь файла, а не link. И кстати, полный путь неверен сам, поскольку вы забыли слэш до addrecord.php.

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