php链接无法在多站点

时间:2017-04-28 05:48:43

标签: php .htaccess httpd.conf

测试两个相同的文件夹,一个放在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 /

1 个答案:

答案 0 :(得分:0)

您必须使用AllowOverride定义目录条目: 的/ var / www / html等/纯

<Directory /var/www/html/plain>
    AllowOverrideAll
    Allow from all
</Directory>

注意:如果您有权访问服务器的主配置文件,则不应使用.htaccess,在Virtualhost中配置重写或重定向更为简单。正如您已经看到的那样,使用子文件和per-dir配置会使事情变得更复杂,而不计算在启用AllowOverride时不得不经常检查这些文件的apache的开销。

相关问题