我对htaccess有疑问。
我有这样的网址: http://www.asd.com/producten/kia?category=car
我希望这是: http://www.asd.com/producten/car/kia
这可能与htaccess有关吗?
我尝试了不同的解决方法,但到目前为止还没有运气。
我试过了:
RewriteRule ^producten/([^/]+)/([^/]+) /producten/$2?category=$1 [NC]
和
RewriteRule /producten/(.*)/(.*) /producten/$2?category=$1 [R]
提前致谢,
莫特
答案 0 :(得分:1)
尝试在/.htaccess
文件中使用以下内容:
RewriteEngine On
# Step 1: Redirect the old URI to the new one and prevent looping
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{QUERY_STRING} category=([^\s&]+) [NC]
RewriteRule ^(producten)/([^/]+)/? /$1/%1/$2? [R=302,L,NE]
# Step 2: Internally rewrite the new URI to the old one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(producten)/([^/]+)/([^/]+)/?$ /$1/$3?category=$2 [L,QSA]
如果您想将重定向设为永久性,请将R=302
更改为R=301
。
答案 1 :(得分:0)
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /(producten)/([^?]+)\?category=([^\s&]+) [NC]
RewriteRule ^ /%1/%3/%2? [R=302,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^(producten)/([^/]+)/([^/]+)/?$ $1/$3?category=$2 [L,QSA,NC]