如何告诉Rewrite链接是GET而不是目录?

时间:2015-11-18 17:25:45

标签: php .htaccess mod-rewrite

这是我在.htaccess中的代码

RewriteEngine On

RewriteRule ^explore/([0-9a-zA-Z\ ]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) renderpage.php?menu=$1&submenu=$2&subsubmenu=$3 [NC]

当我输入www.mysite.com/explore/Servizi%20ADR/Mediazione/Regolamento(原谅意大利语)时

  1. 加载
  2. 需要永远
  3. 当它最终加载并且我'检查元素'时,css和js的源链接就像它们在"explore/Servizi%20ADR/Mediazione/Regolamento/jquery.js "
  4. 中一样

    所以我的猜测是我必须写一些类似RewriteCond的东西,但我不知道到底是什么

1 个答案:

答案 0 :(得分:1)

您应该使用条件不包括真实文件或目录。并且还为这样的文件使用基本路径

RewriteEngine On
#if requested URI is real file or dir, do nothing
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

#else process the rule
RewriteRule ^explore/([0-9a-zA-Z\ ]+)/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)/? renderpage.php?menu=$1&submenu=$2&subsubmenu=$3 [NC,L]

此外,您可以将基本标记放在html的 head 部分,而不是使用js和css的绝对路径。

<base href="http://www.yoursite.com" />