Elgg offers a facility to manage your plugin pages via a page handler, enabling custom urls like `http://yoursite/pg/yourplugin/your_view' (note the `pg` prefix, necessary for the pagehandler to process your url).
To get started, define a page handler in your plugin's `start.php`, and be sure to register it:
function yourplugin_page_handler($page) { switch ($page[0]) { case 'index': // Your code for creating a view break; case 'your_view': ... } } register_page_handler('entity_type', 'yourplugin_page_handler');
`register_page_handler()` first argument is your entity type, for example 'blog', the second argument is the your plugin function handling the request which will get passed as an array in `$page`, broken down to the path elements. With this information you'll be able to load views according to the url being requested.