我的网站上有一些页面没有用户友好的URL。例如。
www.mysite.com/index.php?route=product/category&path=68&vendorId=Cookie%20Dough
所以我想通过使用.htaccess将其直接更改为www.mysite.com/Cookie-Dough
。
到目前为止,我已经在我的.htaccess中编写了以下代码。
RewriteRule ^Cookie-Dough index.php?route=product/category&path=68&vendorId=Cookie%20Dough [NC,L]
工作正常。但问题是我的供应商ID可以改变,所以我希望它是动态的。假设我有另一个像
这样的网址 www.mysite.com/index.php?route=product/category&path=68&vendorId=JELLY%20BEANZ
比我想要www.mysite.com/JELLY-BEANZ
而没有对.htaccess中的代码进行硬编码。
任何帮助将不胜感激。
答案 0 :(得分:1)
将/store
替换为您自己的子目录:
---.htaccess file start ----
Options +FollowSymlinks
RewriteEngine On
RewriteBase /store
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA]
# Added for non www queries
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www .%{HTTP_HOST}/store/$1 [R=301,L]
---.htaccess file ends ----
答案 1 :(得分:0)
您可以使用以下规则:
RewriteRule ^([^-]+)-([^/]+)/?$ index.php?route=product/category&path=68&vendorId=$1%20$2 [NC,L]
这将重写
/foo-bar
到
/ index.php?route=product/category&path=68&vendorId=foo%20bar