htaccess清理网址重写图像,CSS和JavaScript等没有显示

时间:2014-01-20 09:02:29

标签: apache .htaccess mod-rewrite

我创建了一个.htaccess文件,因此我可以使用一些SEO友好且漂亮的URL。

我想转换: http://domain.com/page.php?id=200&name=this-is-a-title

要: http://domain.com/200/this-is-a-title

当我转到后一个URL时,它确实有效,但图像,css,js等不会显示。在一些谷歌搜索后,我发现了一些方法,如何忽略不存在的文件的路径,并忽略特定的目录。但是,每当我添加这些规则/条件时,URL重写不再有效,我只会收到404错误。

这是我的.htaccess文件:

# Turn rewriting on
RewriteEngine On

# Allow any files or directories that exist to be displayed directly
#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^(inc|css|img|js)($|/) - [L]
#RewriteCond %{REQUEST_URI} "/css/" [OR]
#RewriteCond %{REQUEST_URI} "/img/"
#RewriteCond %{REQUEST_URI} !^/css

# Set rewrite rule
RewriteRule ^([0-9]+)/([^.]+)$ page.php?id=$1&name=$2

正如你可以看到注释掉的行的位置,我已经尝试了一些规则来忽略css / img / js文件夹,但没有一个工作。

有没有人有任何想法可能会发生这种情况?

编辑:

只是为了获得更多信息,当我右键单击并查看图像应该在哪里的图像信息时,它说它的路径是200 / img / image.jpg当我将图像的src更改为../img/图片,jpg它有效,但是,我不能真的这样做,因为我有一些我无法编​​辑的PHP包含文件,因为它们也被用在网站上的所有其他页面中,所以我真的不能去并且在不复制php文件的情况下更改其中的图像src,这看起来很愚蠢有两个

4 个答案:

答案 0 :(得分:1)

你不应该需要所有这些规则,而且大多数都被注释掉了(#)。尝试:

# Turn rewriting on
RewriteEngine On

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d

# Set rewrite rule
RewriteRule ^([0-9]+)/([^.]+)$ page.php?id=$1&name=$2

答案 1 :(得分:1)

您需要更改指向绝对网址的链接(以/开头)或将相对网址添加到网页标题中:

<base href="/" />

答案 2 :(得分:0)

按原样保留重写规则,但添加规则以修复css / js / images的链接:

RewriteEngine On

# fix js/images/css
RewriteRule ^.+?/((img|css|js)/.+)$ /$1 [L,R=301,NC]

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/([^.]+)/?$ page.php?id=$1&name=$2 [L,QSA]

答案 3 :(得分:0)

我遇到了同样的问题。然后我用这个简单的技巧,就像一个冠军。

我们需要指定这些文件的动态基本路径,例如图片,样式表,JavaScript文件。

index.php:

"the_geom" contains 'POINT(x y)

.htaccess:

WBAN,Date,Time,StationType,SkyCondition,SkyConditionFlag,Visibility,VisibilityFlag,WeatherType,WeatherTypeFlag,DryBulbFarenheit,DryBulbFarenheitFlag,DryBulbCelsius,DryBulbCelsiusFlag,WetBulbFarenheit,WetBulbFarenheitFlag,WetBulbCelsius,WetBulbCelsiusFlag,DewPointFarenheit,DewPointFarenheitFlag,DewPointCelsius,DewPointCelsiusFlag,RelativeHumidity,RelativeHumidityFlag,WindSpeed,WindSpeedFlag,WindDirection,WindDirectionFlag,ValueForWindCharacter,ValueForWindCharacterFlag,StationPressure,StationPressureFlag,PressureTendency,PressureTendencyFlag,PressureChange,PressureChangeFlag,SeaLevelPressure,SeaLevelPressureFlag,RecordType,RecordTypeFlag,HourlyPrecip,HourlyPrecipFlag,Altimeter,AltimeterFlag
00102,20150101,0001,0,OVC043, ,10.00, , , ,27, ,-2.8, ,26, ,-3.1, ,25, ,-3.9, , 92, , 0, ,000, , , ,30.05, , , , , ,30.36, ,AA, , , ,30.23, 
00102,20150101,0101,0,OVC045, ,10.00, , , ,27, ,-2.8, ,26, ,-3.1, ,25, ,-3.9, , 92, , 6, ,080, , , ,30.07, , , , , ,30.37, ,AA, , , ,30.25, 
00102,20150101,0201,0,OVC047, ,10.00, , , ,26, ,-3.3, ,25, ,-3.7, ,24, ,-4.4, , 92, , 6, ,090, , , ,30.08, , , , , ,30.39, ,AA, , , ,30.26, 
00102,20150101,0301,0,OVC049, ,10.00, , , ,26, ,-3.3, ,25, ,-3.7, ,24, ,-4.4, , 92, , 7, ,100, , , ,30.09, , , , , ,30.40, ,AA, , , ,30.27, 

.htaccess 文件中,我们必须指定&#39; base&#39;手动参数根据干净URL中的参数数量。