Я никоим образом не эксперт по mod_rewrite, но это пример того, как я собрал .htaccess для сайта Image Flair:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/(.*)\.png$ imageFlair.php?mode=$1&userid=$2 [L]
RewriteRule ^(.*)\.png$ imageFlair.php?userid=$1 [L]
</IfModule>
Это в основном карты:
MODE / USERID.png ->
imageFlair.php? Режим = Режим & Идентификатор_пользователя = USERID
и
USERID.png ->
imageFlair.php? Идентификатор_пользователя = USERID
Вы должны быть в состоянии приспособить это к вашим потребностям, но у вас может быть несколько проблем:
- Если вы хотите использовать в именах «имена», а не идентификаторы, вам придется изменить PHP, чтобы они принимали имена.
- У вас может быть проблема с конфликтом / Page и / ModuleType, если вы хотите также включить в Page больше параметров, кроме случаев, когда вы можете собрать регулярное выражение, которое может определить, какие именно.
Если перейти к списку URL-адресов, которые вам нужны, это должно сработать, хотя я не буду утверждать, что это лучший или единственный способ сделать это: -)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)$ index.php?m=$1&categoryID=$2&productID=$3 [L]
RewriteRule ^(.*)/(.*)$ index.php?m=$1&categoryID=$2 [L]
RewriteRule ^(.*)$ index.php?Page=$1 [L]
</IfModule>
Как и предполагалось, вы можете заменить. * На [^ /] +, но у меня были проблемы с несоответствиями, когда я это делал, и у меня не было времени для устранения неполадок, поэтому YMMV: -)