.htaccess url rewrite不会返回整个URL

时间:2012-09-01 06:32:54

标签: php regex apache

我用过的.htacess规则 -

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ profile.php?user=$1 [L]
RewriteRule  ^(.*)$ profile.php?user=$1 [QSA,NE]

正确的例子 -

http://mydomain.com/http://fatalweb.com/articles/8/definitions-for-htaccess-regex-character

传递给$ 1的值是 - http://fatalweb.com/articles/8/definitions-for-htaccess-regex-character

http://mydomain.com/https://www.google.com/search?q=_get&ie=utf-8&oe=utf-8&aq=t

传递给$ 1的值是 - https:/www.google.com/search

如何确保整个网址https://www.google.com/search?q=_get&ie=utf-8&oe=utf-8&aq=t以及所有查询参数都传递到$ 1

1 个答案:

答案 0 :(得分:0)

在你的问题中,是https:/www.google.com/search吗? <{1}}缺失后有一个斜杠。

在使用空文件处理程序之前,您需要至少指定一个规则。不知道为什么,但这就是它的工作方式。请查看您的用例:

https:/

RewriteEngine On RewriteRule ^([^/]*)\.dummy$ ./?dummy=$1&%{QUERY_STRING} [L] RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ ./%{QUERY_STRING} 行是假的。检查并查看这是否适合您! :)