对于我网站上的动态内容,我使用带有查询变量的网址
e.g. http://www.example.com/directory/?state=NJ&city=Wayne&zip=07474 or
http://www.example.com/directory/index.php?state=NJ&city=Wayne&zip=07474
我想将它们转换为seo友好的静态网址
e.g. http://www.example.com/directory/Wayne-NJ-07474/
我在SO上进行了研究,发现看起来似乎是一种htaccess重写规则。
当谈到htaccess结构时,我是一个菜鸟,而我无法理解的是,我仍然可以获得与各个查询参数相关的数据,即州,城市和邮政编码。意思是我仍然可以通过_REQUEST()?
访问它们如果有人能帮我解决我的具体案例的重写规则,我也很感激。
答案 0 :(得分:2)
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteBase /
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+directory/(?:index\.php)\?state=([^\s&]+)&city=([^\s&]+)&zip=([^\s&]+)\s [NC]
RewriteRule ^ /directory/%2-%1-%3? [R=302,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^directory/([^-/]+)-([^-/]+)-([^-/]+)/?$ directory/?state=$2&city=$1&zip=$3 [L,QSA,NC]