繁体   English   中英

mod_rewrite - 有 2 个变量的错误

[英]mod_rewrite - error with 2 variables

只是一个快速的,我正在使用这个规则,它工作正常:

RewriteRule ^([^/.]+)$ /profile.php?id=$1

因此,mysite.com/anything 的任何内容都将被读取为 mysite.com/profile.php?id=anything 这一切都很好。

然后我需要添加另一个变量,所以我使用了:

RewriteRule ^([^/.]+)/([^/.]+)$ /profile.php?id=$1&vid=$2 

哪种有效,但它不加载任何 css、js、外部 php ......我想这就是它在不同文件夹中查找的原因,我不知道如何告诉它从根文件夹中获取其他文件。

有任何想法吗?

那是因为您正在使用 htaccess 创建虚拟文件夹 如果要正确加载 CSS 和 JS,请使用绝对路径或在相对路径之前添加../ (这意味着“一个文件夹向上”)。

另一种可能性是添加<base href="www.example.com"> 这将导致所有新请求(对于图像、外部文件等)都相对于该路径,而不是当前地址。

你可以加

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

不要重写 URL 如果有这个 URL 的文件

在 RewriteRule 之前添加下 2 行

RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM