我有这样的文件夹结构
/
/project1
我通常在一个域(example.com)中使用它,但现在我想将它用作sepreate域(project1.example.com),我正在使用apache virtualhost。我已成功设置,但链接上出现了一些问题。 project1中的所有超链接都是包含“project1”子文件夹的路径(例如project1 / image / pic.jpg)。我这样设置
DocumentRoot /doc_root/
Alias /project1 /doc_root/project1/
Alias / /doc_root/project1
RewriteRule /project1/(.*) /$1 [R]
问题是当我重写干净网址时,例如example.com/project1/post?id=1 => project1.example.com/post/1 With
RewriteRule ^/post/(\d+)$ /project1/post.php?id=$1 [PT,NC,L,QSA]
我在页面的ajax帖子中收到404错误因为ajax url指向/project1/process.php并且我认为这个请求不是重写。
这样设置的正确方法是什么?谢谢!
这里有几个问题:
/project1/post?id=1
到/post/1
的路径)也不会更改域名(即它不会将域更改为project1.example.com
)。我想你想要的是:
DocumentRoot /doc_root/
RewriteCond %{HTTP_HOST} ^project1\.example\.com$
RewriteRule ^/(.*)$ /project1/$1 [NC,PT]
如果您确实想要重定向,请考虑:
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^/project1/(.*)$ project1.example.com/$1 [NC,R]