2014-01-06 145 views
0
重定向页面

造型的工作,我已经设置我的网站的所有请求要经过的index.php无法获得

我现在的.htaccess文件如下:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

我的网站结构基于MVC,因此它查看控制器,操作和可选ID的url。

我想重写请求到新闻部分友好的网址。

在第一个例子中,我只想让这个工作与新闻ID。

因此而不是去新闻/条/ 1的,我想它去新闻/ 1

我曾尝试以下的规则,但不能视为得到它的工作。

RewriteRule ^news/([0-9]+) /news/article.php?id=$1 
RewriteRule ^news/([0-9]+) /news/article/$1 

该规则显示正确的页面,但是所有样式都被删除。

RewriteRule ^news/([0-9]+)$ /news/article/$1 [L] 
+0

实际上你当前的CSS/JS链接是什么? – anubhava

回答

0

你的规则看起来是正确的,不要在RewriteRule行尾忘记[L]标志。

你没有风格的原因使用

RewriteRule ^news/([0-9]+)$ /news/article.php?id=$1 [L] 

时,可能是因为你忘了设定的CSS/JavaScript的源URL以及任何图片包含绝对路径,否则他们将会从article内试装目录。

+0

我已经仔细检查了网址的url,并将它们设置为绝对路径。 – Stephen

+0

@Stephen我最初将错误的RewriteRule复制到我的答案中。它现在与我的答案中的那个一起工作吗?在开发人员工具的网络选项卡中(在Chrome/Firefox中点击F12)CSS /图像资源是否正确加载? – Jon

+0

否它只适用于RewriteRule^news /([0-9] +)$/news/article/$ 1 [L]但是,css仍然没有显示。该CSS加载正常。 – Stephen

0

我能够通过重新路由我的控制器中的新闻文章的所有请求来解决此问题。