IE中的htaccess重写问题
|
我在摆弄.htaccess和mod_rewrite。我有一个网站,其中包含两种我重写的URL:
/index.php?nav=$2
/index.php?nav=41&intNewsId=$3
-41是静态的,新闻导航始终是41
我将它们重写为:
/pagename/id
/news/pagename/id
我已经编写了一段有效的代码(如下),我得到了社区的一些帮助,但是很奇怪的是,http://www.mydomain.nl/projects/15在FF,Chrome和safari中可以正常工作,但是它使IE中的“无法显示页面”。 htaccess在不同的浏览器中工作是否有所不同? (我对此表示高度怀疑)
Options +FollowSymlinks
RewriteEngine on
# Reroute rules that end on /
RewriteRule ^(.*)\\/(\\d+) /$1/$2/ [R]
# RewriteRule ^(.*)\\/(.*)\\/(\\d+) /$1/$2/$3/ [R]
# Make the system understand pagename/96
RewriteRule ^(.*)\\/(\\d+)/ /index.php?nav=$2
# Make the system understand news/pagename/99
RewriteRule ^(.*)\\/(.*)\\/(\\d+)/ /index.php?nav=41&intNewsId=$3
我解决了这个问题,但是我不确定为什么这样做有效,而先前的代码却无效。我修复了两件事:我从/index.php中删除了开始的/并没有解决它,但是字节数少了:D
然后我改写了/-路由规则,这解决了它。
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://mydomain.nl/$1/ [L,R=301]
RewriteRule ^(.*)\\/(\\d+)/ index.php?nav=$2
RewriteRule ^(.*)\\/(.*)\\/(\\d+)/ index.php?nav=41&intNewsId=$3
谢谢大家!
没有找到相关结果
已邀请:
1 个回复
授巨