Во-первых, у меня есть такое меню: home.php, about.php и т. Д.
Когда кто-то обращается к home.php? Page = 1 & opt = 2 & etc, я хочу, чтобы URL отображался domain.com/home/1/2/etc.
Есть ли способ добиться этого?
Как сказал полковник Шрапнель, все наоборот, но вы должны сделать что-то еще.
Эта статья может вам помочь.
http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/
Или, если вы используете Apache, вы можете сделать что-то вроде этого:
В вашем .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?args=$1 [QSA,L]
</IfModule>
Это вернет запрошенный ресурс, если он существует, или преобразует ваш URL:
www.domain.com/1/2
в
www.domain.com/index.php?args=/1/2
Где-то в вашем PHP:
Вам придется проанализировать один параметр: $ _GET ["args"]
Который из примера будет содержать "/ 1/2"
Обратите внимание, что все запросы будут поступать через index.php.
Я бы посоветовал вам тщательно продумать свой URL и написать как можно более общий анализатор. Например:
Будет ли / x / y всегда означать: страница = x opt = y или иногда это будет означать, например, invoice = x line = y?
Может быть, вы могли бы добавить дополнительную информацию к запросу:
www.domain.com/pages/1/2 Будет явно ссылаться на страницы.
Конечно, если вы отправляете только страницы, первый вариант будет работать нормально.