用于插件域和CMS的htaccess

时间:2014-08-01 04:24:42

标签: apache .htaccess mod-rewrite

.htaccess正在努力。驻地专家的任何帮助都将受到大力赞赏。

这是文件夹结构(这是一个CMS,因此文件夹实际上不存在,所有内容都通过/index.php?it=foldername重写);

|--- home
   |--- folderOne
   |--- folderTwo
         |--- subfolderA
         |--- subfolderB
         |--- subfolderC
   |--- folderThree
   |--- etc

我有两个域名,需要以下内容:

  • domain.com应指向它所执行的根文件夹(主目录),标准CMS设置。
  • domainTwo.com(cPanel中的插件域,设置也指向文档root /所以它也通过/index.php运行)应该重定向到/ folderTwo,URL应该是http://domainTwo.com,所以重写应该是某种东西比如/index.php?it=folderTwo
  • 另外,例如,应该可以从http://domainTwo.com/subfolderA访问页面/ folderTwo / subfolderA。

我会想到以下内容:

RewriteCond %{HTTP_HOST} domainTwo\.com$ [NC]
RewriteRule ^$ /index.php?it=folderTwo [L,QSA]

#standard CMS rewrite:
RewriteRule ^(.*)$ /index.php?it=$1 [L,QSA]

这让我疯了,任何人?

1 个答案:

答案 0 :(得分:0)

我认为没有理由不使用(.*)将其余网址添加到路径中。我还添加了一个检查以查看该文件是否已存在。这可以防止规则自身匹配(因为index.php存在)并阻止规则匹配各种其他文件,例如images,css或js文件。

RewriteCond %{HTTP_HOST} domainTwo\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?it=folderTwo/$1 [L,QSA]

#standard CMS rewrite:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?it=$1 [L,QSA]