Frage

Ich weiß, ich habe gesehen, bevor getan, aber ich kann die Informationen nicht überall finden. Ich muß mit .html Erweiterungen im Zend Framework auf dem Weg zu können.

d. /controller/action.html sollte Route an der entsprechenden Controller / Aktion.

Wir haben eine Idee, die Erweiterung .html mit unserer .htaccess-Datei wegzuwerfen, aber ich denke, die Strecke Config zu ändern wäre die bessere Lösung sein.

Jede Beratung ist willkommen.

War es hilfreich?

Andere Tipps

Dies ist das Plugin ich in mehreren Anwendungen verwendet habe:

/**
 * Removes .html extension from URI, if present.
 */
class Application_Plugin_RemoveHtmlExtension extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        // remove ".html" from the end of the URI
        $url = preg_replace('#\.html$#i', '', $request->getRequestUri());

        $request->setRequestUri($url);
    }
}

Ich habe versucht, das gleiche für eine alte Anwendung zu tun. Hier ist, was für mich gearbeitet.

$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$router->addRoute('routeHTML', new Zend_Controller_Router_Route_Regex( '([a-z-]+)/([a-z-]+)/([a-z-]+)\.html', array(),
        array(1 => 'module', 2 => 'controller', '3' => 'action') ,
        '%s/%s/%s.html')
);

Die Standardroute (ohne Module) ist:

:controller/:action

Welche können Sie entfernen, indem Sie:

$router->removeDefaultRoutes();

Dann fügen Sie Ihre Version:

:controller/:action.html
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top