以下网址重写的.htaccess代码是什么:
www.example.com/dir/file.php
进入
www.example.com/file.php?newparam=dir
和
www.example.com/dir/file.php?param1=val1¶m2=val2
到
www.example.com/file.php?newparam=dir¶m=val1¶m2=val2
提前致谢。
答案 0 :(得分:0)
尝试以下操作,让我知道它是否有效:
RewriteEngine on
RewriteBase /
# Allow files that exist to bypass rewrites
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite remaining files
RewriteRule ^/([-a-zA-Z0-9_]+)/([-a-zA-Z0-9_]+\.php)$ /$2?newparam=$1 [L,QSA]
这只允许dir
和file.php
包含字母数字字符,下划线和短划线。
最终规则在正斜杠之间查找匹配两个路径组件的URI。第一个必须是给定集合[-a-zA-Z0-9_]+
中的1个或多个字符,第二个必须相同,但以.php
结尾。 ^
和$
个字符与URI的正面和背面匹配。替换说,将第二个括号内的组(file.php
部分)放在前面,并将第一个括号内的组(dir
部分)作为名为newparam
的参数。最后的[L,QSA]
表示如果匹配则这是最后[L]
规则,因此请进一步停止匹配并执行重定向,[QSA]
表示“查询字符串追加”,这会添加原始查询字符串再次结束,将其关闭将删除原始查询字符串。