以下是我的目录结构。
|--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,Images,.php文件)也重定向和更改到/deal/CSS或/deal/Images等在我的item.php
文件中,但没有文件夹名称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>
这个代码也有同样的问题
请帮助! !
问题不在于你的规则重写请求你的css或图像或javascript,这是因为你在你的内容和URL的/deal/
部分使用相对链接使浏览器认为你*实际上想要你的脚本/图像/css在/deal/
文件夹。您需要将链接设置为绝对url,或者在页面标题中添加一个相对URI基:
<base href="/" />