我想使用.htaccess中的RewriteRule将整个网址重定向到查询参数
例如:http://server.com/http://google.com
应重定向到
http://server.com/index.php?url=http://google.com
到目前为止我能够完成这项工作:http://server.com/google.com
但是当包含:
或/
时,它无法正常工作..
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z0-9_.-]+)$ index.php?url=$1 [L,NC,QSA]
感谢您的帮助!
答案 0 :(得分:1)
RewriteRule
模式将多个/
划分为一个,更好地使用RewriteCond
:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php?url=%1 [L,NC,QSA]
答案 1 :(得分:0)
为什么不执行TLD
,然后在规则中添加http://
。我就是这样做的。
这是我使用它的方式所以它没有"看起来"无效。 http://server.com/google.com
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([a-z0-9_.-]+)$ index.php?url=http://$1 [L,NC,QSA]