我已经在共享主机上设置了 CakePHP,在一个子目录 (cakeDomain) 中。在根目录 (mainDomain) 中使用 htaccess,我将另一个域指向它 (cakeDomain),如下所示:
# /.htaccess
# cakeDomain redirect rules
RedirectMatch 301 ^/cakeDomain/$ http://cakeDomain.com/
# handle domain root and skip subfolders
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_URI} !^/cakeDomain/
RewriteCond %{REQUEST_URI} \..+$
RewriteRule ^(.*)$ cakeDomain/$1 [L]
# add trailing slash to subfolders (eg abc to: abc/)
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} [^/]$
RewriteRule ^(.*)$ $1/ [L,R=301]
# handle files in subfolders
RewriteCond %{HTTP_HOST} cakeDomain.com
RewriteCond %{REQUEST_URI} !^/cakeDomain/
RewriteRule ^(.*)$ cakeDomain/$1/ [L]
RewriteCond %{HTTP_HOST} www.mainDomain.com/cakeDomain/
RewriteRule %{HTTP_HOST} www.cakeDomain.com [L]
访问 mainDomain.com/cakeDomain 会正确地将您重定向到 cakeDomain.com
CakePHP 的文件是这样存储的:
/cakeDomain/app/...
/cakeDomain/lib/...
/cakeDomain/...
etc.
访问 cakeDomain.com 会显示正确的首页,但所有链接的前面都有安装目录:
cakeDomain.com/cakeDomain/controller/action/param1
代替:
cakeDomain.com/controller/action/param1
任何想法如何解决这一问题?
请注意,根据我的多次搜索,似乎很多人立即建议使用虚拟主机。这不是一个选项;我的主机是虚拟主机。我认为这个解决方案需要 htaccess 和/或路由技巧。提前感谢您提供的任何帮助。