【发布时间】:2013-04-16 16:57:18
【问题描述】:
我的网站需要存在于子文件夹中
example.com/site
但我正在尝试使用 .htaccess 删除任何包含 www 的链接(以确保 codeigniter csrf 不会引发错误),所以我添加了
RewriteCond %{HTTP_HOST} ^(www\.example\.com)?$
RewriteRule ^(.*)$ http://example.com/site/$1 [R=301,L]
这在指定了页面标识符的情况下效果很好,所以
www.example.com/site/book rewrites to example.com/site/book
但是当没有指定页面标识符时,我得到一个 404
www.example.com/site rewrites to example.com/site//usr/local/pem/vhosts/103480/webspace/httpdocs/new
我想知道是否有人能指出我正确的方向?
这是我的完整 .htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.example\.com)?$
RewriteRule ^(.*)$ http://example.com/site/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
【问题讨论】:
-
site子目录中是否有额外的 htaccess 文件? -
是的,有问题的 .htaccess 位于
site子目录中,抱歉,我应该更清楚。 faa 的更新答案虽然解决了我的问题
标签: .htaccess codeigniter mod-rewrite codeigniter-2