2011-01-13 42 views
1

我目前正在开发一个基于Drupal网站,但将保持原有系统和许多静态网页/文件夹活着。这将是巨大的,如果我能保持旧的废墟中较新的网站单独的文件夹。这意味着我已经合并在运行这两个文件夹。我认为这个文件夹结构会很棒。合并两个文件夹与国防部重写在.htaccess

/htdocs/legacy (symlink to old web root) 
/htdocs/index.php 
/htdocs/.htaccess 
/htdocs/other drupal files and folders 
/htdocs/... 

这意味着,如果即mydomain.com/xyz.php被访问的服务器应该尝试为它服务按以下顺序。

  1. 如果文件或文件夹/ htdocs中/服务器这
  2. 如果文件或文件夹/传统/服务这一点,但不重写浏览器的地址栏中。
  3. 其他重写把它作为查询字符串到

我想出了以下重写规则。然而,哪些不起作用。我可以在传统或通过Drupal的文件服务解决方案。

# 1. server from .htaccess folder 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)$ - [NC,L] 

# 2. serve from legacy 

RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -f [OR] 
RewriteCond /full-path-to-legacy-folder/%{REQUEST_URI} -d 
RewriteRule ^(.*)$ /legacy/$1 [NC,L] 

# 3. else 

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

有没有人对你有什么建议?

非常感谢!

+1

看上去只有正确的 - 究竟是什么不起作用? – 2011-01-13 10:57:57

回答

0

既然你只是重写URL,并且有需要与文件(如mod_php)进行其他操作,尝试改变你的[L]选项[PT],使常规处理,继续在该请求。