我是mod_rewrite的新手,我正试图制定自己的规则...... 我有这个简单的界限:
RewriteRule ^concorso/(.*)/$ concorso/?iModule=13&iData=$1 [L]
它正在处理以下网址: http://www.mysite.com/concorso/2/ 但不是像 http://www.mysite.com/concorso/2 (没有斜杠)
我知道也许这是一个非常常见的问题,但我在网上找到的所有例子都是......这个简单规则的“超大”
那么,如何自动添加尾部斜杠?请注意以下规则:
RewriteRule ^contatti/$ contatti/?iModule=10 [L]
自动添加斜线... 我也试过了:
RewriteRule ^concorso/(.*)/?$ concorso/?iModule=13&iData=$1 [L]
(最后一个斜杠可选)但我得到Apache错误:
[Wed Dec 29 10:02:41 2010] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. 127.0.0.1 - - [29/Dec/2010:10:02:41 +0100] "GET /concorso/2/ HTTP/1.1" 500 535
感谢您的帮助!
答案 0 :(得分:1)
尝试限制模式将接受的字符,以防止您的模式与您要重写的模式匹配。例如,如果您只想匹配其中###是数字的网址/concorso/###
:
RewriteRule ^concorso/([0-9]+)/?$ concorso/?iModule=13&iData=$1 [L]
更一般地说,这只能匹配没有查询字符串的URL:
RewriteRule ^concorso/([^?]*)/?$ concorso/?iModule=13&iData=$1 [L]