The web server is Apache. I want to rewrite URL so a user won't know the actual directory. For example: The original URL:
http://www.example.com/en/piecework/piecework.php?piecework_id=11
Expected URL:
http://piecework.example.com/en/1开发者_JAVA技巧1
How to achieve it with mod_rewrite?
You need to define a rewrite rule (should be similar to this):
RewriteRule ^/(.*)/en/piecework/(.*)piecework_id=([0-9]+)(.*) piecework.mydomainname.com/en/$3
and put it in a .htaccess file under the main folder of you site
Full description of Rewrite rules here: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
EDIT
Made a mistake in my rule, hopefully I corrected it.
I found a fairly well written crash course in doing so here:
http://articles.sitepoint.com/article/guide-url-rewriting
You'll need to specify the rules in .htaccess (in your site root).
I would suggest the following rule:
RewriteCond %{HTTP_HOST} ^(?!www)([^.]+)\.mydomainname\.com$ [NC]
RewriteRule ^(w+)/(\d+)$ /$1/%1/%1.php?%1_id=$2 [L]
精彩评论