regex - Apache mod_rewrite rule for complex sitemap + index xml files -


we manage sitemap (sitemap.org) files have in range of 500k links, changing enough want dynamically generate them, don't worry, we'll cache results period it's mod_rewrite rules i'm having problem with.

being have more 50k links need using sitemap index files. both sitemaps , index files redirected sitemap.php file use filename pattern ($_server['request_uri']) figure out list present.

the filename patterns follows:

www.domain.com/sitemap.index.xml www.domain.com/sitemap.some_theme.xml www.domain.com/sitemap.different_theme.xml 

the mod_rewrite covers off our web application i'll include of in case else may overriding or conflicting i'm trying accomplish:

rewriteengine on rewritecond %{request_filename} -s [or] rewritecond %{request_filename} -l [or] rewritecond %{request_filename} -d rewriterule ^sitemap\.(.*)\.xml$ sitemap.php/ [nc,l] rewriterule ^.*$ - [nc,l] rewriterule ^.*$ index.php/ [nc,l] errordocument 404 / 

the line i've inserted sitemaps is:

rewriterule ^sitemap\.(.*)\.xml$ sitemap.php/ [nc,l] 

otherwise else standard web application stuff.

--- edit ---

ok, after head scratching, found problem. first, simplified rule since didn't need capture pattern match, positive response, new rule is:

rewriterule ^sitemap.*\.xml$ sitemap.php [nc,l] 

so kicker swapping order of , 1 below:

rewriterule ^.*$ - [nc,l] rewriterule ^sitemap.*\.xml$ sitemap.php [nc,l] 

i'm going leave question open now, because i'd know why made difference. thanks.

this rule redundant , should removed:

rewriterule ^.*$ - [nc,l] 

modify code this:

options +followsymlinks -multiviews # turn mod_rewrite on rewriteengine on rewritebase /  errordocument 404 /  rewritecond %{request_filename} -s [or] rewritecond %{request_filename} -l rewriterule ^/?sitemap\. /sitemap.php [nc,l] rewriterule ^ /index.php [l] 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -