我是.htaccess的新手,我试图将带有参数的网址重定向到没有参数的网址,但是htaccess似乎没有得到它只是没有对它做出反应的参数。
RewriteRule index.php?pageid=8#menukarte http://test.myweb.nl/menukarte-restaurant-cuba-libre/ [NC,R=301,L,NE]
答案 0 :(得分:1)
您无法与QUERY_STRING
中的RewriteRule
匹配。您必须使用RewriteCond
:
RewriteCond %{QUERY_STRING} ^pageid=8$
RewriteRule index\.php$ http://test.myweb.nl/menukarte-restaurant-cuba-libre/ [NC,R=301,L,NE]
另请注意,#
之后的部分无法访问网络服务器。
答案 1 :(得分:1)
您无法与RewriteRule
中的查询字符串匹配,您必须与%{QUERY_STRING}
变量匹配。尝试:
RewriteCond %{QUERY_STRING} ^pageid=8$
RewriteRule index\.php$ http://test.myweb.nl/menukarte-restaurant-cuba-libre/ [NC,R=301,L,NE]
我假设#menukarte
是一个URI片段。当您在浏览器的位置栏中看到URL末尾的#
(和一些文本)时,这纯粹是一个客户端片段,它永远不会被发送到服务器。所以你无法在服务器上与之匹敌。
看到它实际上可能就是你想要做的事情,htaccess对你不起作用,你将需要更改页面的内容(可能是脚本),以便片段导致301重定向。