mod_rewrite重定向/index.whatever /不起作用

时间:2009-09-12 00:21:32

标签: apache url mod-rewrite url-rewriting

我想使用mod_rewrite将index.html | php | php5的所有请求重定向到http://www.domain.co.uk/,我已经用PHP逐字复制了一本关于搜索引擎优化的书中的代码,然后在php5选项中添加了但它不起作用。这是我完整的.htaccess文件:

RewriteEngine On

#translate any .html ending into .php5
RewriteRule ^(.*)\.html$ /$1\.php5

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)\HTTP
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]

#change / for ?
RewriteRule ^(.*)\.html/(.*)$ /$1\.html?$2

#strip .html from search res page
RewriteRule ^(.*)search/(.*)$ /$1search_results\.html/search=$2

#translate product details link from search res page
RewriteRule ^products/(.*)/(.*)/(.*)$ /product_details.php5?category=$1&title=$2&id=$3 [L]

#Translate products/psorisis/chamomile-skin-cream-P[x] to productview.php5?id=1
RewriteRule ^products/.*-P([0-9]+) /productview.php5?id=$1 [L]

我不知道这有什么不对,其余的工作得很好,花花公子。有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

我认为这是因为你的RerwriteCond以\HTTP结尾。

将其更改为:

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]

如果你想匹配THE_REQUEST的HTTP,那么在那里放一个空格

RewriteCond %{THE_REQUEST} ^GET\ .*/index\.(php5|php|html)\ HTTP
RewriteRule ^(.*)index\.(php5|php|html)$ /$1 [R=301,L]