背景
尝试使用 Apache 的 mod rewrite 和 PHP 重新创建 StackOverflow 风格的漂亮 URL。
问题
这很好用:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ([0-9]+)$ index.php?id=$1 [L]
</IfModule>
http://localhost/home/script/5
诸如重定向到的URL http://localhost/home/script/index.php?r=5
。CSS 内容加载完美。
像重定向这样的 URL http://24.68.226.186/recipes/recipe/5/seo-text
,但是 CSS 文件的相对路径不正确:
<link rel="StyleSheet" hreF="css/theme.css" type="text/css" media="screen,print" id="css-theme" />
目录
脚本 (index.php) 的目录结构类似于:
htdocs/home/script
htdocs/home/script/.htaccess
htdocs/home/script/index.php
htdocs/home/script/css
htdocs/home/script/images
问题
您如何使用 mod rewrite 告诉 Apache 在提供文件时使用“脚本”目录而不是附加到 URL 的任何子目录?
换句话说,您将如何使用 mod rewrite 删除 URL 的“seo-text”部分并(1)确保它反映实际标题 [来自数据库];(2) 将浏览器重定向到新的 URL [如有必要];(3) 告诉 Apache 忽略 URL 中 ID 之外的所有路径?
我宁愿不在 CSS 中使用绝对路径。
谢谢!