我能够使用此代码获取网址
RewriteRule ^(.*)/([^/\.]+)/?$ $1/index.shtml?dynContent=$2 [L]
所以dynContent =苹果或香蕉或香蕉苹果
因此,如果我输入http://example.com/dir1/apples或/ dir1 / bananas或/ dir1 / bananas-apples,它会显示正确的内容,我会将其显示为index.shtml
但是我有一个页面需要是完整页面,我有一个页面配置为完整页面,它被命名为indexFP.shtml
这一页的dynContent = oranges
我将RewriteRule作为
RewriteRule ^(.*)/([^/\.]+)/?$ $1/indexFP.shtml?dynContent=$2 [L]
但这并没有为这一页调出正确的整页页面.....
当我输入http://example.com/dir1/oranges时,它使用index.shtml而不是indexFP.shtml
有办法做到这一点吗?这就是我现在所拥有的。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/([^/\.]+)/?$ $1/index.shtml?dynContent=$2 [L]
RewriteRule ^(.*)/([^/\.]+)/?$ $1/indexFP.shtml?dynContent=$2 [L]
有什么建议吗?
答案 0 :(得分:0)
[L]
表示mod_rewrite中的“last”。这会停止处理,因此上面的indexFP
规则永远不会受到影响。
我认为您要做的是为某些字符串选择index
,为其他字符串选择indexFP
。要做到这一点,你需要一种方法来选择一个规则而不是另一个。我的重写是有点生疏,但有点像:
# match "oranges"
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /oranges/
RewriteRule ^(.*)/([^/\.]+)/?$ $1/indexFP.shtml?dynContent=$2 [L]
# match everything else
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/([^/\.]+)/?$ $1/index.shtml?dynContent=$2 [L]