开发者

How can I improve my .htaccess mod_rewrite stuff?

I've created the following .htaccess file after hours of work, Everything seems to be working properly, however I'm new to mod开发者_开发百科_rewrite, and I think my code is amateurish, so I'm looking for things to improve.

For example I thought if I use [L] at the end of a rule, the rest of rewrites will be ignored, but looking at the rewrite logs I see that they are not, there are multiple unwanted pattern matchings that certainly will slow everything down.

Also I have a book that says [C] will chain rewrite conditions, but my apache throws

http://pastebin.com/62JyBXdS


The [L] flag does indeed prevent further rules from processing, however the rewritten url could be passed back through all of your rules a second time hence the multiple entries in your log - see the manual page http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_l

Alot of your rewrite rules do the same thing with just different data and could be compacted down to a single regex, I've done a few but you could do the entire list.

RewriteRule ^/([dprcmlfb]|members|lnli|freelisting)/(.*)$ /$1\.php/$2 [L]

if you also add a RewriteCond of somethine like

RewriteCond %{REQUEST_URI} !^/[^/]+\.php

to prevent the rule firing for a php file request


You could add the MultiViews option instead of rules like the rule below:

RewriteRule ^/d/(.*)$ /d\.php/$1 [L]

MultiViews would correctly interpret /d/stuff as a request to d.php if no other rule interferes.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜