url重写不能处理多个动态值

时间:2016-03-12 18:48:04

标签: php .htaccess mod-rewrite

这是.htaccess:

RewriteEngine on
RewriteRule ^contactus\/?/?$ index.php?goto=contactus
RewriteRule ^home\/?/?$ index.php?goto=home
RewriteRule ^event\/?/?$ index.php?goto=event
RewriteRule ^album\/?/?([a-z0-9-]+)\/?/?$ index.php?goto=home&albumid=$1

问题出现在最后一次RewriteRule上,前三个正在按预期工作。问题出在最后一个,当我打开像http://localhost/album/56c9eb6b1fe75这样的网址时,它无法正常运行。但是当我尝试这个时:http://localhost/index.php?goto=home&albumid=123然后这很好用

PS:

doesn't work properly我的意思是:This is how it opensthis is how it is supposed to open。 检查两个图像中的地址栏以了解问题。在第一个我认为没有加载bootstrap和其他css文件。

2 个答案:

答案 0 :(得分:0)

我说这就是你需要的:

RewriteRule ^album/([a-z0-9-]+)/?$ index.php?goto=home&albumid=$1

答案 1 :(得分:0)

根据您的更新,我认为问题在于您在网页上使用相对路径。这使您的CSS,JS和所有其他资源(图像)从当前路径/album/加载。您应该在路径中添加前导/,以便从服务器的根目录加载。

调用样式表

<link rel="stylesheet" type="text/css" href="style.css">

将加载为

example.com/admin/style.css

如果你做到了

<link rel="stylesheet" type="text/css" href="/style.css">

它知道要转到您域名的根目录。

example.com/style.css