创建使用实际网站网址的漂亮网址时出现问题

时间:2011-03-12 20:20:48

标签: .htaccess mod-rewrite friendly-url

我想创建类似于网站downforeveryoneorjustme.com的功能。他们使用漂亮的URL来获取任何给定网站的URL。我确定他们使用htaccess来做到这一点,但是我使用的方法遇到了问题。

这是我用来将网站网址发送到file.php的.htaccess文件:

RewriteEngine on

RewriteCond %{SCRIPT_FILENAME} !-f  
RewriteCond %{SCRIPT_FILENAME} !-d 

RewriteRule ^(.+)?$ /file.php?var=$1

然而,当我输入类似的东西时 mysite.com/http://google.com它发送文件的变量是http:/google.com(缺少斜杠)。我无法弄清楚为什么会这样。

此外,当我输入类似mysite.com/existingfolder的内容时,其中existingfolder是我网站上的文件夹,但它始终无法正常工作。它传递给文件的变量是missing.html而不是existingfolder。在这种情况下,文件不显示图像。无法找到图像,我假设它是因为它在网站上的不正确的文件夹中搜索图像。它可能认为它在existingfolder而不是它应该在的正常文件夹中。

有谁知道我为什么会遇到这些问题?我知道htaccess,我认为它与此有关。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

  

我确定他们使用htaccess来执行此操作

我不是。我甚至不确定他们是否在使用Apache。

mod_rewrite并不总是所有URL处理问题的答案。它肯定容易出现基于路径的URL处理的一些怪癖,包括删除双斜线。

我建议从脚本中读取特定于Apache的REQUEST_URI变量,而不是依赖重写来获取参数。这将为您提供浏览器请求的路径,无需任何处理。