.htaccess 使url重写动态

.htaccess 使url重写动态,.htaccess,url-rewriting,.htaccess,Url Rewriting,下面是我的url重写的一个例子 # Redirect /page1.php?parameter-view=value to /page1/value RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page1\.php\?parameter-view=([^\s]+) [NC] RewriteRule ^ /page1/%1? [R=302,L] # Internally forward /page1/value to /page1.php?parameter

下面是我的url重写的一个例子

# Redirect /page1.php?parameter-view=value to /page1/value
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page1\.php\?parameter-view=([^\s]+) [NC]
RewriteRule ^ /page1/%1? [R=302,L]

# Internally forward /page1/value to /page1.php?parameter-view=value
RewriteRule ^page1/(.*)/(.*)/?$ /page1.php?parameter-view=$1&parameter-id=$2 [L,QSA,NC]

# Internally forward /page1/value to /page1.php?parameter-view=value
RewriteRule ^page1/(.*)?$ /page1.php?parameter-view=$1 [L,QSA,NC]

# Redirect /page2.php?parameter-view=value to /page2/value
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page2\.php\?parameter-view=([^\s]+) [NC]
RewriteRule ^ /page2/%1? [R=302,L]

# Internally forward /page2/value to /page2.php?parameter-view=value
RewriteRule ^page2/(.*)/(.*)/?$ /page2.php?parameter-view=$1&parameter-id=$2 [L,QSA,NC]

# Internally forward /page2/value to /page2.php?parameter-view=value
RewriteRule ^page2/(.*)?$ /page2.php?parameter-view=$1 [L,QSA,NC]
我有一套第1页和第2页的重写。有没有一种方法可以将这些重写结合起来,这样每次我创建一个新页面时,我就可以添加页面page3,而不是添加第三组重写?我的目标示例:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(page1|page2|page3)\.php\?parameter-view=([^\s]+) [NC]
RewriteRule ^ /(page1|page2|page3)/%1? [R=302,L]


RewriteRule ^(page1|page2|page3)/(.*)/(.*)/?$ /(page1|page2|page3).php?parameter-view=$1&parameter-id=$2 [L,QSA,NC]

RewriteRule ^(page1|page2|page3)/(.*)?$ /(page1|page2|page3).php?parameter-view=$1 [L,QSA,NC]

最好的情况是,我不仅完善了对所有页面使用相同重写的想法,甚至可能不必使用3来完成这项工作?

是的,您可以这样做:

RewriteCond %{THE_REQUEST} \s/+(page1|page2|page3)\.php\?parameter-view=([^\s]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]

RewriteRule ^(page1|page2|page3)/(.*)/(.*)/?$ /$1.php?parameter-view=$2&parameter-id=$3 [L,QSA,NC]

RewriteRule ^(page1|page2|page3)/(.*)/?$ /$1.php?parameter-view=$2 [L,QSA,NC]

这就是我需要的!已尝试编辑,但没有足够的字符进行编辑。1问题:在这个场景中,参数view=$1而不是$3。啊,很抱歉,现在已经修复了。