LiteSpeed Support Forums

LiteSpeed Support Forums (http://www.litespeedtech.com/support/forum/index.php)
-   Apache Migration/Compatibility (http://www.litespeedtech.com/support/forum/forumdisplay.php?f=24)
-   -   [Solved] mod_rewrite too greedy? (http://www.litespeedtech.com/support/forum/showthread.php?t=5341)

dragos 09-29-2011 03:11 PM

[Solved] mod_rewrite too greedy?
 
I have this rule into LSWS:

RewriteRule /([^/.]+)-article/?$ /index.php?action=article&author=$1 [L]
RewriteRule /([^/.]+)/([^/.]+)-article/?$ /index.php?action=article&author=$1&article=$2 [L]

If published in this order, will trigger 1st rule instead of 2nd rule for:
/doyle-conan/sherlock-article/

If I reverse the order, all works fine. Unfortunately that's not an acceptable solution.

This does work without a problem on apache (in this natural order I wrote here). Any help will be greatly appreciated.

webizen 09-29-2011 05:26 PM

Try the modified rules below (should be placed in LSWS vhost Rwrite):

Quote:

RewriteRule ^/([^/.]+)-article/?$ /index.php?action=article&author=$1 [L]
RewriteRule ^/([^/.]+)/([^/.]+)-article/?$ /index.php?action=article&author=$1&article=$2 [L]
Use the followings (leading "/" removed) for .htaccess rerwite:
Quote:

RewriteRule ^([^/.]+)-article/?$ /index.php?action=article&author=$1 [L]
RewriteRule ^([^/.]+)/([^/.]+)-article/?$ /index.php?action=article&author=$1&article=$2 [L]

dragos 09-30-2011 06:51 AM

worked great [SOLVED]
 
Thank you. It was the obvious solution but I could not see it.

I did not knew you support .htaccess in LSWS so I've copied rules from .htaccess and I've spent some time until I've figured out that used in LSWF needed the / in front of the rule in order to work - but I've missed the ^.

One more time, thank you for "opening my eyes" - I've blamed greedy regexp not my eyes.

Floriarmblome 12-01-2012 10:06 PM

Solved mod_rewrite too gr
 
You will need to change your approach slightly to avoid having having Apache go into an infinite loop, but something like the following should work.

RewriteEngine on
RewriteBase /

RewriteRule order/. /order.php?order=1 L


All times are GMT -7. The time now is 01:25 AM.