Я хотел бы иметь немного больше контроля и гибкости при очистке URL. Поэтому я использую следующие директивы для .htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php
И в моем index.php вот так:
$request = str_replace("/server/data/", "", $_SERVER['REQUEST_URI']);
$params = explode("/", $request);
$safe_pages = array("users", "categories");
if(in_array($params[0], $safe_pages) && isset($params[1])) {
include($params[0].'php');
}else{
include('404.php');
}
И у меня есть страницы как users.php и 404.php. Таким образом, посетители могут посетить мой сайт, используя:
https://examplesite.com/users/request/
Где users
- это параметр 0, а request
- это параметр 1 (который я намерен использовать в качестве строки запроса). Он работает на моем локальном хосте, но не на моем удаленном сервере.
Я пытался добавить RewriteBase /
, но не думаю, что понял, как это работает. Привет.