Я создаю сайт с большим количеством параметров. На данный момент я использую этот код в своем файле .htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /epo
RewriteRule (.*)/(.*)/(.*)/(.*)/(.*)/$ index.php?section=$1&content=$2&site=$3¶m=$4¶m2=$5 [QSA]
RewriteRule (.*)/(.*)/(.*)/(.*)/$ index.php?section=$1&content=$2&site=$3&subsite=$4 [QSA]
RewriteRule (.*)/(.*)/(.*)/$ index.php?section=$1&content=$2&site=$3 [QSA]
RewriteRule (.*)/(.*)/$ index.php?section=$1&content=$2 [QSA]
RewriteRule (.*)/$ index.php?section=$1 [QSA]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}/ [R=301,L]
Я новичок в mod_rewrite, поэтому этот код беспорядок. Есть ли лучший способ справиться со всеми этими параметрами? Последние две строки просто добавляют «/» в конце, если его нет. Было бы также здорово, если бы кто-нибудь мог объяснить свой код, чтобы я мог понять, что я сделал неправильно :)
$params[3]
может выдать предупреждение, если установлены только 2 параметра. Также используйте регулярную проверку, чтобы убедиться, что параметры соответствуют вашим ожиданиям. (числовой или строковый, sql escape и т. д.) 19.03.2013