【发布时间】:2013-02-19 23:08:29
【问题描述】:
我想重写
- www.mydomain.com/www/whatever.php
到
- www.mydomain.com/www/whatever.php?hl=EN
whatever.php 不固定,它代表www目录下的任何php页面。
我的 htaccess 现在看起来像这样:
RewriteEngine on
RewriteCond %{REQUEST_URI} !hl=
RewriteRule ^(.+)$ $1?hl=EN [QSA,R=301,L]
但由于某种原因,它会将每个页面的真实硬盘路径添加到 www.mydomain.com,例如:
- 127.0.0.1:8080/index.php
变成
- 127.0.0.1:8080/D:/mypath/index.php?hl=EN
我一定是在这里做错了什么,你知道吗?
【问题讨论】:
-
我认为你的情况应该检查 %{QUERY_STRING} 而不是 REQUEST_URI。我不确定硬盘驱动器 URL 是什么意思。你能指定原始 URL 和它被重定向到的 URL 吗?
-
我添加了详细信息,并更正了
{QUERY_STRING}的事情 -
奇怪。 RewriteRule 中的正则表达式匹配只会匹配 REQUEST_URI 部分(例如 /my/little/pony/index.php)。你工作的环境如何?本地主机?直接用 URL 中的文件系统路径访问文件?
-
我也是这么想的……
-
你的 RewriteBase 是如何定义的?
标签: .htaccess mod-rewrite