Apache 别名无法正常工作

Apache 别名无法正常工作

我在 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 rewrite)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

重写规则 ^(.*)$ index.php?q=$1 [L,QSA]

答案1

我知道这是一篇很老的文章,但是我认为我在另一个 StackExchange 网站上找到的这些信息可能会有所帮助

当在您的 apache 配置中使用时,alias您还需要RewriteBase在 .htaccess 文件中使用与别名相同的内容。

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>

要求您包括...

RewriteEngine On    
RewriteBase /antoniocs/project

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

我实际上在一个项目中注意到了它,因为正在对 images/js/css 进行重写,而我所有的补充文件都无法加载。

答案2

听起来好像重写发生在错误的位置。例如,Web 服务器试图/home/antoniocs/www/project/index.php通过相同的路径查找 URL 而不是本地文件。也许检查 Drupal 安装本身?您可以通过查看重定向请求来检查服务器的想法,例如卷曲

curl -I http://localhost/antoniocs/project/category

查看是否返回代码 301 或 302,这可能有助于缩小问题范围。例如:

$ curl -I http://www.outflux.net/blog
HTTP/1.1 301 Moved Permanently
...
Location: http://www.outflux.net/blog/

答案3

或者,您也可以启用userdirapache 模块。这样您就不必创建别名来访问位于主目录中的代码

sudo a2enmod userdir
cd ~
mkdir public_html
sudo /etc/init.d/apache2 restart

把你的代码放在这个public_html下,你可以通过以下方式访问它http://localhost/~用户名或者http://ip地址/~用户名(例如:http://本地主机/~aneesh

您可以通过编辑 conf 文件来更改目录名称(public_html)/etc/apache2/mods-enabled/userdir.conf

答案4

看看这里是否有任何帮助:https://drupal.org/node/163915,您的问题可能与 /etc/apache2/sites-available/default 中的 AllowOverride 语句有关

相关内容