3

I have some URLs like these:

  • http://plutov.by/post/cubique_zf_jquery
  • http://plutov.by/post/mysql_useful_queries

How can I with help of Apache mod_rewrite open the next pages?

  • http://plutov.by/post/main?title=cubique_zf_jquery
  • http://plutov.by/post/main?title=mysql_useful_queries

Also, will be this new rewrite rule work with "one entry point rewriting"?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

Thanks.

Olivier Pons
  • 15,363
  • 26
  • 117
  • 213
Alex Pliutau
  • 21,392
  • 27
  • 113
  • 143

2 Answers2

3

You can use something like this in your .htaccess:

RewriteRule ^post/(.*)$ post/main?title=$1 [L]

You should keep this rule BEFORE one entry point rewriting rules. If rule will trigger then rewrite rule lookup will be finished (since [L] option specified)

Some modification of paths may be required if you want to use these rules in VirtualHost context

Sergey P. aka azure
  • 3,993
  • 1
  • 29
  • 23
3

To make the new rewrite rule work with "one entry point rewriting", have your rewriteRules like this:

The QSA flag is mandatory as you are adding a new query string.

RewriteEngine On

RewriteRule ^(post)/([\w\d\-]+)/?$ $1/main?title=$2 [QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]
Community
  • 1
  • 1
ThinkingMonkey
  • 12,539
  • 13
  • 57
  • 81