2

我想缩短这个 URL:'http://localhost/school/readmore?id=2'(必须用引号括起来,因为 SO 不允许发布 localhost URL)。.htaccess我已经用这个文件把它变成了这样的“http://localhost/school/readmore-2.html” :

RewriteEngine On
IndexIgnore *

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^readmore-([1-9]+).html$ readmore.php?id=$1

这是修改后的链接

<a href="readmore-<?php echo $show_row['id']; ?>.html">Readmore</a>

但我希望 URL 看起来像这样“http://localhost/school/readmore/2”。一旦我尝试过,但完全失败了;这是不起作用的脚本:

RewriteEngine On
IndexIgnore *

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^readmore/([1-9]+).html$ readmore.php?id=$1

<a href="readmore/<?php echo $show_row['id']; ?>.html">Readmore</a>

起初我认为它有效,但 CSS 脚本没有加载,因为我在链接处将-“”更改为“ /”,脚本将其作为文件夹读取。

4

2 回答 2

1

逃离你的.

RewriteRule ^readmore/([1-9]+)\.html$ readmore.php?id=$1
于 2012-07-22T01:46:48.493 回答
0

您的浏览器认为它位于子目录中,因此它引用“http://localhost/school/readmore/style.css”而不是“http://localhost/school/style.css”

要解决此问题,您应该为样式表和链接使用绝对路径,例如

<link rel="stylesheet" href="http://localhost/school/style.css" />

或者

<link rel="stylesheet" href="/school/style.css" />
于 2012-07-22T01:47:49.013 回答