seo – Writes the first directory to a "page" parameter and an optional second directory to a "tab" parameter

Yes, you have a conflict.

  • Both yours .Access Rules have exactly the same conditions, so the first one will always win. The second is never executed.
  • Your URL structure is ambiguous.

You must go back one step before trying to write code you Solve the following URLs:


How can you know that At home should dissolve p = home and items should dissolve ? page = article? How about foo? You can only "see" what's in the URL.

You either have to:

  • There are some noticeable differences between the URLs so you know how to rewrite them. For example: vs
  • When the number of URLs has been rewritten p = (or ? page =) is limited, then you can literally list the URL patterns in your directive. For example:

    RewriteRule ^ (home | about) $ index.php? P = $ 1 [L]
  • rewrite everything to a single URL parameter (eg ? page =) and decide in your PHP how the page should be provided. This seems to be the more logical solution since you rewrite index.php anyway in both scenarios and you do not want to continue editing .Access, This could also do the extra tab "Parameter".

The additional parameter "tab"

If all URLs should be overwritten with a second path segment ? page = then that could be a "recognizable" difference. However, this currently fails if the second path segment is omitted, as in /Items, How should it be handled?