更改文件的URL而不进行物理移动

时间:2011-10-20 23:13:24

标签: apache url

我有一个运行Linux + Apache的站点。

我的根目录中有一个文件,比方说file.php。 我希望文件的URL为“domain.com/newdir/file.php”,但我不想实际创建newdir并将文件移到那里,因为更新许多链接将是一个巨大的麻烦在我的网站上。 有没有办法实现这一点,这意味着通过新URL可以访问文件而不移动它?

谢谢。

2 个答案:

答案 0 :(得分:0)

在此网站上:workwith.me,您可以找到有关.htaccess和mod_rewrite的信息。对于您的示例,您必须创建一个名为 .htaccess 的文件并将其放在根目录中。该文件应包含以下指令:

RewriteEngine on
RewriteRule ^newdir/file.php$ /file.php [L]

您可以为要重命名的每个文件执行此操作。

答案 1 :(得分:0)

我能想到的四种可能的解决方案:

  1. 如果您的操作系统支持,请创建符号链接:

    mkdir /home/foo/htdocs/newdir
    ln -s /home/foo/htdocs/file.php home/foo/htdocs/newdir/file.php
    

    ...并确保Apache为configured to follow them

    Options FollowSymLinks
    
  2. 创建AliasAliasMatch(可能是矫枉过正)

  3. 好老mod_rewrite

    RewriteEngine One
    RewriteRule ^newdir/file\.php$ file.php [L]
    
  4. 丑陋:使用带有检查$_SERVER['REQUEST_URI']的PHP脚本的custom 404 error page

  5. 我猜标准解决方案是#1和#3。