【发布时间】:2012-03-16 13:44:16
【问题描述】:
我正在尝试将非 www 重定向到我的 php 网站上的 www 并保持 url 干净而无需链接到 .php 页面。
当我为下面的非 www 使用建议的重定向到 www 时,页面链接不再转到正确的页面。例如:我有一个 page1.php,当我链接到 domain.com/page1(没有 .php)时,该页面将不再加载。我怎样才能解决这个问题?我是否必须修改所有链接并添加页面扩展名 (.php) 才能使链接正常工作?
我正在使用的htaccess:
重写引擎开启
#This bit rewrites your host name to include www
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,NC,L]
#This bit does the codeigniter magic
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
【问题讨论】:
-
您是否为
/page1设置了路由,或者page1.php文件实际上不存在? -
我所有的页面都是 page.php 格式。但链接是 /page /page1 /page2 等...
-
那么您是否使用 CodeIgniter?一般来说,它不是你在网站上放置的一些魔法,它使 URL 像你想要的那样工作。您需要将这些页面转换为控制器和视图,然后适当地设置您的路由。如果你已经这样做了,那么请给我们一些关于你的路由的细节,这样我们就可以帮助导致
.htaccess指令不足以继续下去。 -
不,它是一个带有 .php 页面的普通网站
-
那么您需要删除最后 3 个指令。但是,您将不得不使用
thepage.php来访问页面,这意味着更改所有链接。我很好奇你之前是如何工作的......
标签: php .htaccess mod-rewrite redirect url-rewriting