这就是我现在所拥有的:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(.*)$ /$3?$1=$2 [N,QSA]
这将www.any.com / x / 20 / y / 30 变成www.any.com /index.php?x=20&y=30
(忽略现有的目录 - 非常感谢Gumbo!)
RewriteRule ^([^/]+)/([^/]+)(.*)$ /$3?$1&$2 [N,QSA]
这个调整允许我去:www.any.com / x / y = 30 并完成相同的结果,但x没有任何价值。我喜欢这个选项,但我必须一次做两个变量,否则我找不到奇数变量的页面。所以www.any.com/x/y=20/z会给我“url / z not found!”
有关如何让它基本上将每个文件夹重写为请求变量的任何想法?谢谢,伙计们。
答案 0 :(得分:2)
请尝试以下规则:
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/=]+)=([^/]*)(/(.+))?$ /$4?$1=$2 [N,QSA]
RewriteRule ^([^/=]+)/([^/=]+)(/(.+))?$ /$4?$1=$2 [N,QSA]
RewriteRule ^([^/=]+)(/(.+))?$ /$3?$1 [N,QSA]
第一条规则
如果请求可以映射到现有文件或目录,则中止重写过程。
第二条规则
适用于/foo=bar/…
→/…?foo=bar
表单的网址路径。
第三条规则
适用于/foo/bar/…
→/…?foo=bar
表单的网址路径。
第四条规则
适用于/foo/…
→/…?foo
表单的网址路径。