mod_rewrite和URL冲突

时间:2014-03-23 00:37:53

标签: apache .htaccess mod-rewrite

我正在网站上获取有关其他网站的信息。 我想做的是:

  

myurl.com/site/example.com - >原始网址是   的 myurl.com/work.php?query=example.com

而且,我知道该怎么做。

但问题是,当我放入 example.com ,而不是 http:// https:// 之前“干净”的URL,服务器了解另一件事:

  

未找到在此服务器上找不到请求的网址/网站/ http://www.example.com

我的.htaccess文件现在是:

RewriteEngine On
RewriteRule ^q/([^/]*)$ /?id=$1 [L]

我该怎么做才能让它正常工作?

1 个答案:

答案 0 :(得分:0)

您的模式:([^/]*)匹配不是/ 的任何内容。所以,如果你添加一个" http://"或" https://"在" example.com"前面,它有/,其中两个,所以你的模式将拒绝匹配它。您可以尝试为http部分创建可选匹配项:

RewriteEngine On
RewriteRule ^q/(?:https?://|)([^/]*)$ /?id=$1 [L]

或更改([^/]*)模式以匹配/'

RewriteEngine On
RewriteRule ^q/(.*)$ /?id=$1 [L]