我创建了一个.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,这看起来很愚蠢有两个
答案 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中的参数数量。