我正在努力使用我的.htaccess文件来实现这个目标:
a.com/male-items (OR)
a.com/male-items/popularity -> a.com/index.php?g=m&sort-popularity
a.com/female-items (OR)
a.com/female-items/popularity -> a.com/index.php?g=f&sort=popularity
a.com/male-items/alphabet -> a.com/index.php?g=m&sort=alphabet
a.com/male-items/alphabet/a -> a.com/index.php?g=m&sort=alphabet&l=a
(and same for female)
我知道它应该像
RewriteRule ^a$ a.com/index.php?q=$1
但实际上,查看不同的mod-rewrite / regex解释和备忘单并没有帮助它让它发挥作用。困难的部分是了解如何在地址中定义不同的参数,然后在重写的URL中使用它们。
(对您的解决方案的任何解释都会被提及)
答案 0 :(得分:1)
在DOCUMENT_ROOT/.htaccess
文件中使用这些规则:
RewriteEngine On
RewriteRule ^male-items/?$ /index.php?g=m&sort=popularity [L,QSA]
RewriteRule ^male-items/([^/]+)/?$ /index.php?g=m&sort=$2 [L,QSA]
RewriteRule ^male-items/([^/]+)/([^/]+)/?$ /index.php?g=m&sort=$2&l=$3 [L,QSA]
RewriteRule ^female-items/?$ /index.php?g=f&sort=popularity [L,QSA]
RewriteRule ^female-items/([^/]+)/?$ /index.php?g=f&sort=$2 [L,QSA]
RewriteRule ^female-items/([^/]+)/([^/]+)/?$ /index.php?g=f&sort=$2&l=$3 [L,QSA]
答案 1 :(得分:0)
这些htaccess行将所有不存在的文件/文件夹重定向到index.php:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
在index.php中,您可以使用:$_SERVER['REQUEST_URI']
来解析参数。