【发布时间】:2011-05-25 20:19:37
【问题描述】:
我将以下重写添加到我的虚拟主机的 conf 文件中:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
.... A bunch of aliases here
该网站在 www 上运行良好。但是,如果您输入的域没有 www。该站点将被重定向到 www.example.com/home/example/public_html - 它添加了文件路径。我怎样才能防止这种情况发生?
这是别名:
Alias /index.php /home/cms/public/index.php
Alias /skins/admin /home/cms/public/skins/admin
AliasMatch ^/scripts/(\w+)/admin/(\w+)\.js /home/cms/modules/$1/scripts/admin/$2.js
AliasMatch ^/scripts/(\w+)/(\w+)\.js /home/cms/modules/$1/scripts/$2.js
Alias /scripts /home/cms/public/scripts
AliasMatch (?i)^/flash/([A-Za-z]*)/([A-Za-z_]*).swf$ /home/cms/public/flash/$1/$2.swf
Alias /css /home/cms/public/css
Alias /thirdparty /home/cms/public/thirdparty
RewriteEngine off
<Directory /home/cms>
Order allow,deny
Allow from all
</Directory>
<Location />
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]
</Location>
【问题讨论】:
-
你能提供一些关于你的别名的信息吗?请求应该像这样工作。
-
您的虚拟主机配置是否有更高级别的规则? public_html 通常用于每个用户的配置。
标签: regex apache mod-rewrite rewrite