我在我的 000-default 虚拟主机文件中添加了这些行:
Alias /antoniocs/project "/home/antoniocs/www/project"
<Directory "/home/antoniocs/www/project">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
/home/antoniocs/www/project 包含一个drupal网站
如果我去:
本地主机/antoniocs/项目
这很好。我看得很清楚。但是,当我尝试点击一个链接时,例如,我会:
本地主机/antoniocs/项目/类别
我收到此错误:
未找到
在此服务器上找不到请求的 URL /home/antoniocs/www/project/index.php。
这不是处理项目文件夹中的 .htaccess 吗?我究竟做错了什么???
注意:我也觉得奇怪的是它给了我一个文件路径而不是一个 url 路径
在 Apache 2.2.16 上运行(带有 mod 重写)Ubuntu 10.10 php 5.3.3-1ubuntu9.1
额外说明:对于那些不知道 drupals htaccess 的人,它会将所有内容重定向到 index.php?q=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
我知道这是一篇非常古老的帖子,但我认为我在另一个 StackExchange 网站上找到的这些信息可能会有所帮助。
在您的 apache 配置中使用时,
alias
您还需要RewriteBase
在与别名相同的 .htaccess 文件中使用。要求您包括...
我实际上在一个项目中注意到了它,因为图像/js/css 正在进行重写,并且我的所有补充文件都没有加载。
听起来好像在错误的位置进行了重写。例如,网络服务器试图
/home/antoniocs/www/project/index.php
通过相同的路径查找 URL 而不是本地文件。也许检查 Drupal 安装本身?您可以通过使用curl之类的东西查看重定向请求来检查服务器的想法:查看是否返回了代码 301 或 302,这可能有助于缩小问题范围。例如:
或者,您也可以启用
userdir
apache 模块。这样您就不必创建别名来访问驻留在主目录中的代码把你的代码放在这个 public_html 下,你可以通过http://localhost/~username或http://ipaddress/~username访问它(例如:http://localhost/~aneesh)
您可以通过编辑 conf 文件来更改目录名称(public_html)
/etc/apache2/mods-enabled/userdir.conf
看看这里是否有任何帮助:https ://drupal.org/node/163915 ,您的问题可能与中的 AllowOverride 语句有关;/etc/apache2/sites-available/default