Htaccess olmadan PHP URL Rewrite

4 Cevap php

The website is running on a web hosting where we don't have access on htaccess file.The web server is Apache. I want to rewrite URL. For example: The original URL: www.mydomainname.com/en/piecework/piecework.php?piecework_id=11 Expected URL:piecework.mydomainname.com/en/11

Nasıl yapılacak?

4 Cevap

Ne yazık ki htaccess veya apache yapılandırma erişimi olmadan bunu yapmak mümkün olmayacaktır. Ev sahibi dışarı hata halt ya da yeni bir tane almak. Orada cheapo paylaşılan ana çoğu benim deneyimlerinden mod_rewrite'ın sunuyoruz.

İnsanların (çeşit) size, yani bahsediyorsun ne başarmak için sorgu dizesi tokenize gördüm:

domain.com/foo/bar/11

: Aslında olarak yorumlanır

domain.com/foo/bar/11.php?action=foo&query=bar

Ancak fiziksel dizin yapısında bu semantik oluşturmak zorunda. Bu, çirkin yönetmek asi ve mod_rewrite ile çok daha kolay başarılı olduğunu.

Sen probably mod_rewrite etkin olmalı, here's a short tutorial başlamak için.

This code might be what you looking for: Usage: phpfile.php/en/11 Note: no mod_rewrite required.

<?php

$DEFAULT_ACTION = 'badAction';

$pathInfo = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
$pathParts = explode('/', substr($pathInfo, 1));
$action = isset($pathParts[0]) ? $pathParts[0] : $DEFAULT_ACTION;

if (function_exists($action)) {
    $action($pathParts);
} else {
    badAction();
}

function badAction($parts = null)
{
    print 'The function specified is invalid.';
}


function en($parts)
{
    $name = isset($parts[1]) ? $parts[1] : 'undefined';
    $xml = new SimpleXMLElement('<message>Number: ' . $name . ' </message>');
    header('Content_Type: text/xml');
    print $xml->asXML();
}


?>

ps. Ben 'Profesyonel PHP6' ISBN :978-0-470-39509-7 in kodu bulundu

Tek seçenek ise hantal ama .... - Sen aslında fiziksel klasörleri / dosyaları (yani yol, aslında fiziksel olarak var erişilen) yapmak ve sonra bu uygun şekilde ele / yönlendirme olabilir

Ev sahibi size en az bir özel 404 hata belgeyi izin ve sonra REDIRECT_URL dayalı orada her şeyi ele eğer başka bir olasılık görüyor olacaktım.