Mam takiego .htaccessa:
Options +FollowSymLinks RewriteEngine on RewriteRule cache/ - [F] Options -Indexes RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^([a-zA-Z0-9\-\_\/]*)$ index.php?p=$1 # Blokada hotlinking czyli kradzieży obrazków RewriteCond %{HTTP_REFERER} !^https://(.+\.)?nazwadomeny.pl/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !google\. [NC] RewriteCond %{HTTP_REFERER} !yahoo\. [NC] # Prevent viewing of htaccess file. <Files .htaccess> order allow,deny deny from all </Files> RedirectMatch 403 ^.*/apps/(.*).php(.*)$ <ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule> Linki w serwisie wyglądają tak: <a href="http://localhost/admin/SystemConfiguration/RemoveFile" target="_blank">http://localhost/admin/SystemConfiguration/RemoveFile</a> <a href="http://localhost/admin/SystemConfiguration/AddFile" target="_blank">http://localhost/admin/SystemConfiguration/AddFile</a> <a href="http://localhost/admin/SystemConfiguration" target="_blank">http://localhost/admin/SystemConfiguration</a>
Chciałbym żeby dodatkowo rozszerzyć to o możliwość dodania kolejnego ukośnika z parametrem:
<a href="http://localhost/admin/UserList/User/IDUsera" target="_blank">http://localhost/admin/UserList/User/IDUsera</a> <a href="http://localhost/admin/UserList/User/IDUsera/Category" target="_blank">http://localhost/admin/UserList/User/IDUsera/Category</a>
Lub jeśli się nie da, to chociaż żeby skrypt zaczął "łapać" wartości z $_GET:
localhost/admin/UserList/User?id=IDUsera
Chociaż wolałbym to 1 rozwiązanie.
Dispatcher mojej aplikacji wygląda w sposób następujący:
class Dispatcher { private $request; public function dispatch() { $this->request = new Request(); Router::parse($this->request->url, $this->request); $controller = $this->loadController(); call_user_func_array([$controller, $this->request->action], $this->request->params); } public function loadController() { $config = \Core\Utilities\Registry::register("Core\Utilities\Config"); if (ADMIN_MODE === true) { $file = $config->backend_controller_path . '' . $this->request->controller . '.php'; $controllerName = 'Backend\Controllers\\' . $this->request->controller . "AdminController"; } else { $file = $config->frontend_controller_path . '' . $this->request->controller . '.php'; $controllerName = 'Frontend\Controllers\\' . $this->request->controller . "Controller"; } require_once("../" . $file); $controller = new $controllerName(); return $controller; } else { } } } class Request { public $url; public function __construct() { } }
Czy da się wprowadzić taką zmianę bez modyfikacji php (w samym .htaccesie)?
Może to być widoczne jako kolejny parametr czy coś....
Mam działającą aplikację, do której mam dorobić jakiś drobiazg - dlatego nie chce za bardzo zmieniać php, żeby nic się nie sypneło