我有一个模组重写问题要解决,我绝不是专家。我相信我已经接近了,但并不完全在那里。
我有一个旧应用程序,该应用程序的文档根位于 http://doma.in/PlantImages/,并且使用 http://doma.in/PlantImages/ImageData.asp?IDN=01加载特定页面-002h或类似。我需要 mod 重写才能使用http://doma.in/index.php?mod=media&func=view&ot=collection&tpl=tree访问新应用程序,以及使用 http://doma.in/index.php?mod=media&func访问单个页面=显示&ot=中等&slug=01-002h
更重要的是,新应用程序有一套现有的处理短 URL 的重写规则:
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^(.*)$ - [NC,L]
RewriteRule ^(.*)$ index.php [QSA,L]
我目前拥有的是:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^IDN=$1
RewriteRule ^/PlantImages/ImageData\.asp index.php?mod=media&func=display&ot=medium&slug=$1
RewriteRule ^PlantImages/ index.php?mod=media&func=view&ot=collection&tpl=tree
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^(.*)$ - [NC,L]
RewriteRule ^(.*)$ index.php [QSA,L]
我确实有这个接近工作,但不完全。当第一个条件和规则被注释掉时,第二个(PlantImages/)会正确重定向。但是当没有注释掉时,第一个根本不重定向,css坏了,第二个也坏了。