【发布时间】:2015-02-28 22:18:03
【问题描述】:
我正在尝试通过 htaccess 文件重写 URL,以便以下 URL
www.domain.com/subfolder/index.php?key
可以通过以下方式访问:
www.domain.com/subfolder/index.php/key
指定的“键”将决定在 PHP 代码中包含哪个页面。 我已经有以下 htaccess 代码,但是在使用第二个(干净的)URL 时,没有显示 CSS、JS、图像等。关于可能是什么问题的任何想法?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{DOCUMENT_ROOT}/$1 -f
RewriteRule ^[^/]+/([^.]+\.(?:js|css|jpe?g|png|gif))$ /$1 [L,R=301,NC]
RewriteRule ^index.php/([a-zA-Z0-9/_]+)$ index.php?key=$1
【问题讨论】:
-
您必须对所有 html 资源(css、js、图像、href 链接等)使用绝对路径而不是相对路径跨度>
-
感谢您的回答! webapp的位置可能会改变,改变所有路径会很痛苦,我正在寻找一个htaccess解决方案。
-
你不能用 htaccess 处理它。您所能做的就是使用 absolute 路径。您可以通过在页面中的每个
<head>之后添加一个标签来做到这一点:<base href="/path/to/website/">。在此处查看我对类似问题的回答:stackoverflow.com/questions/25630373/… -
谢谢贾斯汀。将其添加到头部并按预期工作!
标签: apache .htaccess url mod-rewrite redirect