我试图重写这两个网址
domain.com/test
domain.com/TEST
到这个
domain.com/test.php
这是我目前的.htaccess代码:
Options +FollowSymlinks -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(test|TEST)($|/$) /test.php
这适用于/test
网址,但不适用于/TEST
。我做错了什么?
答案 0 :(得分:2)
使用[NC]
标志会使RewriteRule以不区分大小写的方式匹配。也就是说,它不关心字母在匹配的URI中是以大写形式还是小写形式出现。
您必须在重写
中添加[NC]作为后缀答案 1 :(得分:0)
Prashant Thakre关于[NC]标志的评论是正确的。下面的代码在忽略大小写的同时查找/ test并设置永久重定向标志。
RewriteEngine On
RewriteCond %{REQUEST_URI} /test [NC]
RewriteRule .* http://example.com/test.php [R=301,L]
这是永久重定向的另一个选项,但它区分大小写,因此使用多行代码来匹配大小写和大写。
RewriteEngine On
Redirect 301 /test http://example.com/test.php
Redirect 301 /TEST http://example.com/test.php
您可以在http://httpd.apache.org/docs/current/mod/mod_rewrite.html
找到有关mod_rewrite选项的更多信息请记住在测试mod重写时始终清除浏览器缓存。当浏览器缓存页面时,即使重写工作正常,也会忽略重写。