以下是我的目录结构。
|--inc (folder)
|-->header.php
|-->footer.php
|--css (folder)
|--js (folder)
|--images (folder)
|--index.php
|--product.php
|--items.php
php文件index.php
,product.php
,items.php
都用于将文件包含在inc
文件夹
现在我使用.htaccess重定向我的使用,就像我想要一些文件重定向到product.php
和一些文件到item.php
。
第一种方法
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([A-Za-z0-9-]+)$ ./product.php?fd=$1 [L,NC,QSA]
RewriteRule deal/([A-Za-z0-9-]+)$ ./item.php?id=$1&id2=$2 [L,NC,QSA]
</IfModule>
在这种方法中,内容的URL(CSS,JS,图像,.php文件)也重定向并更改到我的item.php
文件中的/ deal / css或/ deal / images等但是那里不是文件夹名deal
。我刚添加deal
以消除两次重定向之间的冲突
第二种方法
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# first try to see if belongs to item.php based on URI pattern
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)$ ./item.php?idd=$1&id=$2 [L,NC,QSA]
# No try /j/display.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9-]+)$ ./product.php?fd=$1 [L,NC,QSA]
</IfModule>
此代码也有同样的问题
帮助!!!任何帮助表示赞赏..
答案 0 :(得分:1)
问题不在于您的规则正在重写您的css或图片或javascript的请求,因为您在内容中使用了相对链接而{{1 \ n} URL的一部分使浏览器认为您*实际上希望您的脚本/ images / css位于/deal/
文件夹中。您需要将链接设为绝对URL或将相对URI基础添加到页面标题中:
/deal/