如何使URL用户友好?

时间:2015-12-10 11:33:32

标签: php .htaccess url-rewriting opencart

我的网站上有一些页面没有用户友好的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中的代码进行硬编码。

任何帮助将不胜感激。

2 个答案:

答案 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