RewriteRule重定向整个域以获取参数

时间:2015-03-12 21:04:49

标签: apache .htaccess redirect mod-rewrite

我想使用.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]

感谢您的帮助!

2 个答案:

答案 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]
相关问题