htaccess不能很好地工作

时间:2014-07-04 21:44:20

标签: php regex apache .htaccess mod-rewrite

在我的网站上,我写了一些博客,其中包含以下类型的链接

http://example.com/blog.php?article=article-title-goes-here

我使用以下htaccess代码来获得带有htaccess的漂亮网址,但有一半的代码无效

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteRule blog/article/(.*)/ blog.php?article=$1
RewriteRule blog/article/(.*) blog.php?article=$1

该网站正被重定向到www.example.com,但它不会影响博客网址

编辑:当我输入网址

http://asinnetworks.com/blog/article/Hackers-take-over-Israel-army-Twitter-account/

以前是

http://asinnetworks.com/blog.php?article=Hackers-take-over-Israel-army-Twitter-account

页面加载但不加载css和东西

1 个答案:

答案 0 :(得分:0)

在css,js,images文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

或者

您可以尝试在页面的HTML标题中添加:<base href="/" />

或者www强迫规则下方添加此重写规则

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteRule ^article/(.+?\.(?:jpe?g|gif|bmp|png|tiff|css|js))$ /$1 [L,NC,R=301]

RewriteRule blog/article/([^/]+)/?$ blog.php?article=$1 [L,QSA]