У меня есть URL, то есть "www.mysite.com". Я хочу отправить параметры через url следующими способами:
www.mysite.com/count
www.mysite.com/search_caption?query=huha
www.mysite.com/page=1
www.mysite.com/search_caption?query=huha&page=1
В каждом из этих случаев я хочу загрузить страницу index.php с параметрами следующим образом для каждого случая:
var_dump($_REQUEST) results into [count]
var_dump($_REQUEST) results into [query="huha"]
var_dump($_REQUEST) results into [page=1]
var_dump($_REQUEST) results into [query="huha",page=1]
Как написать файл.htaccess для достижения этого?
Я использую этот код, но он захватывает только параметры после "?" и не все после первой косой черты
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^([^/]+)/?$ index.php?{REQUEST_FILENAME}=$1 [L,QSA]
RewriteRule .* /index.php [L]
Что-то вроде этого должно приблизиться, хотя вы действительно должны думать об этих странных шаблонах URL вместо того, чтобы пытаться их исправить после перезаписи...
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L,QSA]
RewriteRule ^count index.php?count=1 [L]
RewriteRule ^page/(.*)$ index.php?page=1 [L]
RewriteRule ^ index.php [L,QSA]
Некоторые примечания:
index.php
самом деле должен существовать как файл, иначе это приведет к циклу перезаписиУчитывая все, что должно произойти:
www.mysite.com/count => index.php?count=1
www.mysite.com/search_caption?query=huha => index.php?query=huha
www.mysite.com/page/1 => index.php?page=1
www.mysite.com/search_caption?query=huha&page=1 => index.php?query=huha&page=1
Также обратите внимание, что приведенные выше правила написаны для файлов стиля .htaccess
. Для использования в качестве обычных правил, поэтому в конфигурации хоста http-серверов они должны быть написаны немного иначе. Вы должны использовать только файлы стиля .htaccess
если вам действительно нужно, поэтому, если у вас нет доступа к файлам конфигурации. Вы всегда должны стараться избегать этих файлов, если это возможно. Они, как известно, подвержены ошибкам, трудно настраивать и отлаживать и действительно замедлять работу сервера. Поэтому, если у вас есть доступ к конфигурации http-сервера, тогда вместо этого определяются такие правила.
$_GET
?