测试两个相同的文件夹,一个放在Drupal安装文件夹中,另一个放在一个普通的html子文件夹中 home root,只有CMS链接为CMS安装工作。这是有道理的,因为Drupal有一个设置php file和.htaccess文件,确保所有内容都在适当的位置,无论是否在home root中,链接都可以正常工作。但是我认为通过简单的重写就可以很容易地将链接用于普通的html子文件夹 规则存在于php文件夹中的.htaccess文件中。然而,尽我所能,迄今为止没有任何工作。
/etc/httpd/conf.d/my.conf中的配置
<VirtualHost *:80>
ServerName drupalsite.com
ServerAlias www.drupalsite.com
ServerAdmin vps@drupalsite.com
DocumentRoot "/var/www/html/drupalsite.com"
<Directory /var/www/html/drupalsite.com>
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName plainhtml.com
ServerAlias www.plainhtml.com
ServerAdmin vps@plainhtml.com
VirtualDocumentRoot "/var/www/html/plain”
</VirtualHost>
相同php文件夹中的.htaccess文件
RewriteEngine On
RewriteBase /phpfolder/
RewriteRule ^c-(.*)$ catpost.php?id=$1 [L]
RewriteRule ^a-(.*)-(.*)$ archives.php?month=$1&year=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ viewpost.php?id=$1 [QSA,L]
所以drupalsite.com/phpfolder链接所有工作
但是plainhtml.com/phpfolder链接不起作用
Drupal的phpfolder位于/ var / www / html,Drupal网站是符号链接的
用于普通html子文件夹到root的phpfolder驻留在/ var / www / html / plain
这两个phpfolders都归apache所有:root,其中的所有文件都归root所有:root
还尝试将.htaccess重写规则更改为:
RewriteBase /
RewriteBase /plain/
RewriteBase / plain / phpfolder /
答案 0 :(得分:0)
您必须使用AllowOverride定义目录条目: 的/ var / www / html等/纯
<Directory /var/www/html/plain>
AllowOverrideAll
Allow from all
</Directory>
注意:如果您有权访问服务器的主配置文件,则不应使用.htaccess,在Virtualhost中配置重写或重定向更为简单。正如您已经看到的那样,使用子文件和per-dir配置会使事情变得更复杂,而不计算在启用AllowOverride时不得不经常检查这些文件的apache的开销。