Forum Moderators: phranque
Assuming that this code is located in "/subdom-subdir/.htaccess" where subdom-subdir is the path to the directory in which the resources for your subdomain are stored, try:
Options +Indexes +FollowSymlinks
RewriteEngine on
RewriteRule ^home /subdom-subdir/shop.php
RewriteRule ^reviews-([a-z0-9]+)-([a-z0-9]+)-([a-z0-9]+)-([0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&i=$3&p=$4&a=reviews [NC,L]
RewriteRule ^buy-([a-z0-9]+)-([a-z0-9]+)-([a-z0-9]+)-([A-Za-z]+)-([0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&i=$3&m=$4&p=$5&a=buy [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]+)-([a-z0-9+_"]+)-([a-z0-9+_]+)-([a-z]+)-([0-9]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&k=$3&t=$4&s=$5&p=$6 [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]+)-([a-z0-9+_"]+)-([a-z]+)-([0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&k=$3&s=$4&p=$5 [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]+)-([a-z]+)-([0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&s=$3&p=$4 [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]+)-([a-z0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2&i=$3 [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1&n=$2 [NC,L]
RewriteRule ^page-([a-z0-9+"]+)\.html$ /subdom-subdir/shop.php?a=$1 [NC,L]
RewriteRule ^([a-z0-9]+)-([a-z0-9_]+)\.html$ /subdom-subdir/shop.php?c=$1 [NC,L]
RewriteRule ^item-([a-z0-9]+) /subdom-subdir/shop.php?i=$1 [NC,L]
RewriteRule ^search-([a-z0-9+_"]+) /subdom-subdir/shop.php?k=$1 [NC,L]
mod_rewrite code "converts" nothing. Rather, it tells the server where to find the real resources ("files") to serve when certain URLs are requested by the HTTP client. The "URL conversion" was done when you changed the URLs on your pages to point to .html "pages." Rather than saying "I was using this .htaccess code to convert PHP calls to .html", it is far more accurate to say, "I was using this .htaccess code to map .html URLs to PHP script calls."
It may also be helpful to understand that once a request "lands" in your server's filespace, there is no longer any "subdomain" -- It has already been converted from a subdomain-URL to a server-internal filepath -- in this case, shown as "subdom-subdir."
Due to the length of the patterns, the rules in this example code may wrap to multiple lines depending on your display. However, each rewrite rule must be all on one line.
Completely flush your browser cache before testing any changes to your .htaccess code.
Jim
[edited by: jdMorgan at 9:32 pm (utc) on Dec. 28, 2007]
[edit reason] example.net [/edit]
[edited by: jdMorgan at 12:39 am (utc) on Dec. 29, 2007]
[edit reason] No URLs please. See TOS. [/edit]
Ask your host about the paths and the error log. No error log? - Then you'll need to get a proper host.
The URLs you are requesting generally should be made up of letter/number and number-only groups separated by hyphens and ending with ".html" according to your rules above.
I'm afraid that without all of the information requested above, I can be of little further help. :(
Jim