.htaccess不会在网址中查看参数

时间:2014-09-17 09:02:30

标签: .htaccess mod-rewrite redirect

我是.htaccess的新手,我试图将带有参数的网址重定向到没有参数的网址,但是htaccess似乎没有得到它只是没有对它做出反应的参数。

RewriteRule index.php?pageid=8#menukarte http://test.myweb.nl/menukarte-restaurant-cuba-libre/ [NC,R=301,L,NE]

2 个答案:

答案 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重定向。