使用 mod_rewrite 一级方法配置 .htaccess
Configure .htaccess with mod_rewrite one level up approach
我的项目结构是
/var/www/mysite
------页数
------脚本
------其他
在其对应的虚拟主机中配置为:
ServerName mysitename.com
DocumentRoot /var/www/mysite/pages/
因此,当从页面文件夹提供 index.php 时,资源(scripts/images 等)没有找到,正如预期的那样,因为页面正试图像这样加载它们。 http://mysitename.com/scripts/storage.js
.
这当然有道理。
您将如何解决这个问题?我知道通过设置一些 mod_rewrite 规则,您可以有条件地重写 url,这是一种解决方法吗? 我主要想看看我在这里有什么选择,而不是得到一个解决方案,比如将你的 .html 文件向上移动一层。
有 2 种可能的解决方案:
在您的 Apache 服务器配置中使用 alias
(当然您需要控制 Apache 配置)。 alias
命令示例:
Alias /scripts /var/www/mysite/scripts
<Directory /var/www/mysite/scripts>
Options Indexes
Allow from all
</Directory>
在 pages/
目录中创建符号 link。例如在 *nix
系统上使用此命令创建 symlinks:
cd pages
ln -s ../scripts .
ln -s ../other .
我的项目结构是
/var/www/mysite
------页数
------脚本
------其他
在其对应的虚拟主机中配置为:
ServerName mysitename.com
DocumentRoot /var/www/mysite/pages/
因此,当从页面文件夹提供 index.php 时,资源(scripts/images 等)没有找到,正如预期的那样,因为页面正试图像这样加载它们。 http://mysitename.com/scripts/storage.js
.
这当然有道理。
您将如何解决这个问题?我知道通过设置一些 mod_rewrite 规则,您可以有条件地重写 url,这是一种解决方法吗? 我主要想看看我在这里有什么选择,而不是得到一个解决方案,比如将你的 .html 文件向上移动一层。
有 2 种可能的解决方案:
在您的 Apache 服务器配置中使用
alias
(当然您需要控制 Apache 配置)。alias
命令示例:Alias /scripts /var/www/mysite/scripts <Directory /var/www/mysite/scripts> Options Indexes Allow from all </Directory>
在
pages/
目录中创建符号 link。例如在*nix
系统上使用此命令创建 symlinks:cd pages ln -s ../scripts . ln -s ../other .