我有以下规则:
RewriteCond %{REQUEST_URI} !script.php
RewriteCond %{QUERY_STRING} url=(.*)
RewriteRule .* script.php?q=%1
RewriteCond %{REQUEST_URI} !script.php
RewriteRule (.*) script.php?q=$1
我在这里要完成的是,对http://example.com/?url=www.google.com
的每次访问都会重定向到script.php?q=www.google.com
,如果没有查询字符串,则应将相对路径发送到script.php
, http://example.com/path
中的示例应重定向到script.php?q=path
。这似乎不符合我的规则,但我不确定为什么。这甚至可能吗?
答案 0 :(得分:0)
您可以遵守以下规则:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^url=([^&]+) [NC]
RewriteRule ^/?$ script.php?q=%1 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.+)$ script.php?q=$1 [L,QSA]