首先,我试图找到这样的答案,就像3晚:)如果有这样的答案,我无法找到或理解。
我的问题很简单:
我想用斜杠拆分get参数。并在我的脚本中全局使用它。
在htaccess中,我写了这个;
RewriteRule ^(.*)/(.*) index.php?param1=$1¶m2=$2 [NC,QSA,L]
RewriteRule ^(.*) index.php?param1=$1 [NC,QSA,L]
但是这会阻止(或者像那样)css文件。当浏览器加载页面时,css文件链接看起来正常但浏览器无法访问它们(因为htaccess将目录作为参数)
感谢您的帮助
编辑:我的完整.htaccess:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/(.*) index.php?param1=$1¶m2=$2 [NC,QSA,L]
RewriteRule ^(.*) index.php?param1=$1 [NC,QSA,L]
答案 0 :(得分:2)
确保您的规则看起来像这样。条件仅适用于其后的第一个重写规则。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*) index.php?param1=$1¶m2=$2 [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?param1=$1 [NC,QSA,L]
还要为CSS文件使用绝对路径,或在文件路径前放置/
。
答案 1 :(得分:0)
将此置于规则之上:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
它检查文件是否已经存在(例如CSS文件),因此不会尝试重写或重定向它们。