问题描述
在 .htaccess 中我有:
RewriteEngine on
RewriteRule documentation documentation.PHP?id=0
RewriteRule documentation/process documentation.PHP?id=1
当我打开 https://example.com/documentation/process 正确的网站被调用 (documentation.PHP?id=1) 但因为我有像“assets/css/xxx.css”这样的链接而不是“https://example.com/assets /css/xxx.css" 我的网站无法正常工作 - 基本上它指向错误的目录。 如何在不更改“https://example.com/assets/css/xxx.css”的所有链接的情况下解决该问题?
解决方法
像这样在两边都有锚点,使用适当的标志并关闭 MultiViews
:
Options -MultiViews
RewriteEngine On
RewriteRule ^documentation/?$ documentation.php?id=0 [L,QSA,NC]
RewriteRule ^documentation/process/?$ documentation.php?id=1 [L,NC]
此外,您还必须在页面 HTML 的 <head>
标记下方添加此内容:
<base href="/" />
这样每个相对 URL 都是从该基本 URL 而不是从当前页面的 URL 解析的。