Php Can';无法在重定向页面上进行样式设置

Php Can';无法在重定向页面上进行样式设置,php,html,css,.htaccess,mod-rewrite,Php,Html,Css,.htaccess,Mod Rewrite,我已经为所有通过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,因此它

我已经为所有通过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

我想重写对新闻部分的友好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]

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

使用时没有样式的原因

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

可能是因为您忘记将CSS/Javascript源URL和任何图像设置为包含绝对路径,否则,他们将尝试从
article
目录中加载。

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

我已仔细检查了css的URL,并将其设置为绝对路径。@Stephen我最初在回答中复制了错误的重写规则。这和我现在回答的那个有效吗?在开发者工具的“网络”选项卡中(在Chrome/Firefox中点击F12),CSS/图像资源加载是否正确?否,它仅适用于RewriteRule^news/([0-9]+)$/news/article/$1[L],但是CSS仍然没有显示。css加载正常。除了新闻中的链接外,网站上没有其他链接。你只有一个htaccess文件吗?
news
news/article
是真正的目录吗?您当前的CSS/JS链接是什么?