【发布时间】:2011-12-12 04:51:02
【问题描述】:
我有一个网站,运行 Linux + Apache。
我的根目录中有一个文件,比如说file.php。 我希望文件的 URL 为“domain.com/newdir/file.php”,但我不想实际创建 newdir 并将文件移到那里,因为更新许多链接会很麻烦在我的网站上。 有没有办法做到这一点,也就是说让新 URL 可以访问文件而不移动它?
谢谢。
【问题讨论】:
我有一个网站,运行 Linux + Apache。
我的根目录中有一个文件,比如说file.php。 我希望文件的 URL 为“domain.com/newdir/file.php”,但我不想实际创建 newdir 并将文件移到那里,因为更新许多链接会很麻烦在我的网站上。 有没有办法做到这一点,也就是说让新 URL 可以访问文件而不移动它?
谢谢。
【问题讨论】:
我能想到的四种可能的解决方案:
如果您的操作系统支持,请创建符号链接:
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
创建一个Alias 或AliasMatch(可能有点矫枉过正)
好老mod_rewrite:
RewriteEngine One
RewriteRule ^newdir/file\.php$ file.php [L]
丑陋:使用custom 404 error page 和检查$_SERVER['REQUEST_URI'] 的PHP 脚本。
我猜标准解决方案是#1 和#3。
【讨论】:
在此站点:workwith.me,您可以找到有关 .htaccess 和 mod_rewrite 的信息。对于您的示例,您必须创建一个名为 .htaccess 的文件并将其放在根目录中。该文件应包含以下指令:
RewriteEngine on
RewriteRule ^newdir/file.php$ /file.php [L]
您可以对每个要重命名的文件执行此操作。
【讨论】: