我正在尝试找到一种从我的mod_rewrite权限中排除图像文件和css文件的方法
Options +FollowSymLinks
RewriteEngine On
#SecFilterInheritance Off
ErrorDocument 404 /fourohfour.php
RewriteCond %{HTTP_HOST} ^(myurl\.com)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
RewriteCond %{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$ [NC,OR] #my attempt at excluding
RewriteRule ^articles/([^/]+)/([^/]+)/?$ /article.php?id=$1&articleTopic=$2 [QSA,L]
问题在于排除行不太准确,我需要帮助
如果我去我的目录中没有包含在我的.htaccess重写中的任何phpscript ..说对于isntance www.myurl.com/articlelinks.php我被重定向到这个:
http://www./articlelinks.php
使事情进一步复杂化:
如果我去: http://www.myurl.com/articles/1/Dorsal+and+Volar+Intercalated+Segment+Instability+(DISI+and+VISI) CSS文件无法加载
如果我去:
http://www.myurl.com/articles.php?id=1&articleTopic=Dorsal+and+Volar+Intercalated+Segment+Instability+(DISI+and+VISI)正确的文档加载了css和图像
请帮帮忙?
答案 0 :(得分:1)
你的条件中有OR
标志,但之后没有其他条件,这使得mod_rewrite认为:%{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$
或(任何)。尝试删除OR
RewriteCond %{REQUEST_URI} !\.(?:css|png|jpe?g|gif)$ [NC]
RewriteRule ^articles/([^/]+)/([^/]+)/?$ /article.php?id=$1&articleTopic=$2 [QSA,L]
您的CSS无法加载的原因可能是因为您在文档中使用了相对URL路径。尝试将这些链接更改为绝对URL路径(以/
开头)或将其添加到页面标题中:
<base href="/" />
空白主机问题,不确定为什么会发生这种情况。尝试添加此条件:
RewriteCond %{HTTP_HOST} !^$
以便规则如下:
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^(myurl\.com)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]